PyQt4:等待无模式对话框

时间:2015-06-19 16:38:13

标签: python-3.x pyqt4 modeless

有没有办法等待关闭无模式对话框?

这是一个示例应用程序:我启动了一些程序,它需要做一些启动的东西,还需要用户登录。由于用户登录需要一些时间,我希望登录框是无模式的,这样我就可以继续在后台执行其他启动工作。但在某些时候,我无法继续,直到登录过程完成。理想情况下,当我到达那一点时,我希望能够调用像dialog.wait_until_complete()之类的东西,然后让它像一个模态对话框一样,只有在用户接受/拒绝对话框后才会继续。

1 个答案:

答案 0 :(得分:0)

连接到对话框的finished信号:

    self.login.finished.connect(self.handleLoginFinished)
    ...

def handleLoginFinished(self, result):
    if result == QDialog.Accepted:
        # register login...
    else:
        # deal with cancelled login...

为防止用户互动,您只需hide()主窗口,直到登录完成。否则,要更改对话框的模态,您需要执行以下操作:

    self.login.hide()
    self.login.setModal(True)
    self.login.show()