Viewing an inline HTML text using QWebView()
我正在使用pyqt4创建一个应用程序,以便在不从系统加载本地HTML文件的情况下查看内联文本HTML标记。但是,我对HTML的字符串格式有一些问题。这个代码只显示窗口,而不显示HTML文本。请帮忙。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | # imported all the modules class HtmlView(QtGui.QMainWindow): def __init__(self): QtGui.QMainWindow.__init__(self) ................. # i've skipped the layout definition here ................ # an inline text with html mark-up text ="<p> This is a paragraph </p>This is inside div element" self.html = QtWebKit.QWebView() # setting layout self.gridLayout.addWidget(self.html) self.mainLayout.addWidget(self.frame) self.setCentralWidget(self.centralwidget) self.web_page = text url = self.web_page self.html.load(QtCore.QUrl(url)) self.html.show() # executing using if __name__ =="main": skipped this part |
请告诉我如何更改元素的样式
在qWebView()中。
需要使用sethtml在WebView中加载标记:
1 2 3 4 5 | self.html = QtWebKit.QWebView() # self.web_page = text # url = self.web_page self.html.setHtml(text) # self.html.show() |
(不需要注释行)。
要设置元素样式,请将样式表添加到标记中:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | text =""" <html> <style type="text/css"> p {color: red} div {color: blue} </style> <body> <p> This is a paragraph </p> This is inside div element </body> </html> """ |
号
PS:使用qwebview显示标记是一个非常重要的解决方案——使用qtexbrowser(更容易使用)可能更好。这只支持有限的HTML子集,但通常足够好:
1 2 | self.html = QtGui.QTextBrowser(self) self.html.setHtml(text) |