我想使用QtHelp和QHelpEngine创建一个帮助文件。我目前有一些代码,但我不确定我的错误,文档在我看来有点模糊。尽管如此,我目前面临的问题是连接信号和插槽。我当前得到的错误是AttributeError: 'builtin_function_or_method' object has no attribute 'linkActivated'
不确定其原因,因为文档说明contentWidget确实有一个名为linkActivated
的信号。这里发生了一个错误textViewer = QtWidgets.QTextBrowser(helpEngine)
from PyQt5 import QtCore, QtGui, QtWidgets, QtHelp
import os
class Ui_HelpSetupClass(QtWidgets.QDockWidget):
def __init__(self):
super().__init__()
self.setupUi(self)
def setupUi(self, HelpSetupClass):
qUrl = "qthelp://ut.tool.help/tool/index.html"
HELP_DIR = os.getcwd()
HELP_PATH = HELP_DIR + "\\" + "Help" + "\\" + "help_file.qhc"
helpEngine = QtHelp.QHelpEngine(HELP_PATH)
helpEngine.setupData()
tableWidget = QtWidgets.QTabWidget()
tableWidget.setMaximumWidth(200)
tableWidget.addTab(helpEngine.contentWidget(), "Contents")
tableWidget.addTab(helpEngine.indexWidget(), "Index")
textViewer = QtWidgets.QTextBrowser(helpEngine)
textViewer.setSource(qUrl)
helpEngine.contentWidget.linkActivated(qUrl ).connect(textViewer.setSource(qUrl))
helpEngine.indexWidget.documentActivated(qUrl ).connect(textViewer.setSource(qUrl))
horizSplitter = QtWidgets.QSplitter(QtCore.Qt.Horizontal)
horizSplitter.insertWidget(0, tableWidget)
horizSplitter.insertWidget(1, textViewer)
horizSplitter.hide()
helpWindow = QtWidgets.QDockWidget("Help", self)
helpWindow.setWidget(horizSplitter)
helpWindow.hide()
QtWidgets.QMainWindow.addDockWidget(QtCore.Qt.BottomDockWidgetArea, helpWindow)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
ui = Ui_HelpSetupClass()
ui.show()
sys.exit(app.exec_())
在C++代码到Python的翻译中,它显示了许多错误,所以我将避免指出它,而我只会显示正确的翻译:
注意:使用原始文件“QGraphicsShelpExample.qhp”会导致错误,因为“/foo”路径如“/insertobject.html”解析不正确,因此我将其更改为“foo”
完整的示例可以在here找到。
相关问题 更多 >
编程相关推荐