qt5.6加载html显示排版不对

html-css012

qt5.6加载html显示排版不对,第1张

qt5.6加载html显示排版不对解决办法如下:

QTextBrowser中默认的设置:

setExtensionType("html", "text/htmlcharset=iso8859-1")

setExtensionType("htm", "text/htmlcharset=iso8859-1")

setExtensionType("txt", "text/plain")

setExtensionType("xml", "text/xmlcharset=UTF-8")

如果html文件是GB2312编码的则会出现乱码,解决的方法如下:

QTextBrowser *m_phtmlBrowser

......

QMimeSourceFactory *factory=m_phtmlBrowser->mimeSourceFactory()

factory->setExtensionType("htm", "text/htmlcharset=GB2312")

factory->setExtensionType("html", "text/htmlcharset=GB2312")

factory->addFactory(factory)

......

m_phtmlBrowser->setSource(filename)

如果从应用层面考虑,Qt能直接操作到系统API,当然是Qt强了。

但是从这两个东西本身,用的都是它预先提供的样式、交互罢了。如果它没提供那就没办法,如果你自己去调系统的API实现,那又和Qt没有什么关系。没有谁“更先进, 那个更强大”一说

感觉自己去手动解析HTML文档有点费事。

我的思路:

把你的帮助文档做成带目录的(无非加一些锚或者用一些Frame),然后使用Qt中的QWebView把这些HTML文档呈现出来。

由于你的网页本身就带目录,所以显示出来也就自然带目录了。

而且,这样的话,你的文档也可以单独查看。