所以我有一个QTextEdit,我把一些html超链接放到它的本地文件中:
<a href="file:\\path\\to\\myfile">link</a>
当我启动我的应用程序时,Qt将我的链接显示为蓝色,但它没有显示小手,我无法点击它。
在向我扔石头之前:
self.workflow_log_textedit.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByKeyboard|QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextBrowserInteraction|QtCore.Qt.TextEditable|QtCore.Qt.TextEditorInteraction|QtCore.Qt.TextSelectableByKeyboard|QtCore.Qt.TextSelectableByMouse)
<a href="file:///\\path\\to\\myfile">link</a>
的路径之间放置3个斜杠,这只是在我点击它时清除我的QTextBrowser type="image"
和target="_blank"
,结果相同我想指出,使用http链接
效果不佳编辑: MCVE按要求:
#!/usr/bin/python
from PyQt4 import QtGui, QtCore
import sys
class MyMainWindow(QtGui.QMainWindow):
def __init__(self, parent=None):
super(MyMainWindow, self).__init__(parent)
self.tb = QtGui.QTextBrowser()
self.tb.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByKeyboard|QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextBrowserInteraction|QtCore.Qt.TextEditable|QtCore.Qt.TextEditorInteraction|QtCore.Qt.TextSelectableByKeyboard|QtCore.Qt.TextSelectableByMouse)
self.tb.setHtml('<a target="_blank" href="file:///{path}">{path}</a>'.format(path='C:\Users\johndoe\Pictures\doge.png'))
self.setCentralWidget(self.tb)
app = QtGui.QApplication([])
foo = MyMainWindow()
foo.show()
sys.exit(app.exec_())
答案 0 :(得分:1)
如果将url设置为html文档,那么您的示例将正常工作。但是,如果将其设置为图像文件,它将无法工作,原因与您尝试在文本编辑器中打开图像文件时相同。 QTextEdit
和QTextBrowser
类可以处理纯文本,加上limited subset of HTML4 - 以及所有类。
当然,您可以使用<img>
标记在html文档中显示图像。所以类似下面的内容应该有效:
self.tb.setHtml('<img src="image.png" />')
用于图像超链接:
self.tb.setHtml('<a href="doc.html"><img src="image.png" /></a>')