Python 如何在PyQt向导中显示页面后连接信号。?
我已经使用Python 如何在PyQt向导中显示页面后连接信号。?,python,pyqt,pyqt4,qwizard,Python,Pyqt,Pyqt4,Qwizard,我已经使用Qt设计器在PyQt4中创建了一个向导。在向导的一个页面上,存在类型为QTextBrowser的“text\u Browser”对象。我正在使用函数QTextBrowser.append()根据一些处理向其中添加文本 我希望在显示本页后执行追加功能,而不是将操作(信号)连接到下一页或上一页上的任何其他按钮。如何执行此操作?您可以在QTextBrowser中重新实现showEvent # from PySide import QtGui from PyQt4 import QtGui
Qt设计器
在PyQt4中创建了一个向导。在向导的一个页面上,存在类型为QTextBrowser
的“text\u Browser”对象。我正在使用函数QTextBrowser.append()
根据一些处理向其中添加文本
我希望在显示本页后执行追加功能,而不是将操作(信号)连接到下一页或上一页上的任何其他按钮。如何执行此操作?您可以在QTextBrowser中重新实现
showEvent
# from PySide import QtGui
from PyQt4 import QtGui
class CustomTextBrowser(QtGui.QTextBrowser):
'''Reimplment show event to append text'''
def showEvent(self, event):
# do stuff here
#self.append('This random text string ')
event.accept()
请注意,每次显示小部件时,这将附加到QTextBrowser的字符串,这意味着切换此小部件可见性的其他Qt事件可能会导致意外行为。出于这个原因,最好使用信号和插槽,但由于您明确地不使用信号/插槽,因此showEvent
上有一个QEvent版本,带有一个合理的警告
避免多次追加文本的一个解决方案是设置实例变量,并在显示小部件后切换该值:
# from PySide import QtGui
from PyQt4 import QtGui
class CustomTextBrowser(QtGui.QTextBrowser):
'''Reimplment show event to append text'''
def __init__(self, *args, **kwds):
super(CustomTextBrowser, self).__init__(*args, **kwds)
self._loaded = False
def showEvent(self, event):
if not self._loaded:
# do stuff here
#self.append('This random text string ')
self._loaded = True
event.accept()
另一个解决方案是使用上面提到的signal/slot策略,或者重写\uuuu init\uuuu
在子类中自动附加文本。对于Qt程序员来说,信号/插槽机制可能是最直观、最合乎逻辑的