所以,我不确定标题是否是最好的描述,但这是我想出的。这是交易。我正在开发一个具有某种插件系统的 PyQt 应用程序,您可以在其中将一些子类添加到文件夹中,然后应用程序会找到它们。这些命令可以选择为自己创建小用户界面。基本上,它们看起来像这样:
class Command(object):
def do(self):
self.setupUi()
self.pre()
self.run()
self.post()
def pre(self):
# do setup stuff for run method
def run(self):
# do actual work
def post(self):
# clean up after run
def setupUi(self):
# create a ui for this command
diag = QDialog()
diag.exec_()
现在,我遇到的问题是,我有一个命令创建一个对话框,并等待用户接受它。然后,我需要在命令运行时将对话框切换为非模态,并更新对话框。这一切似乎都很好。但是,问题是在 pre、run 和 post 方法完成之前,我无法让对话框重绘。所以,如果我有这样的 setupUi:
def setupUi(self):
# create a ui for this command
diag = QDialog()
if diag.exec_():
diag.setModal(False)
diag.show()
我尝试了 processEvents 但似乎没有这样做。有没有其他人遇到过这个问题,或者知道任何解决方法?
谢谢