等待触发器

时间:2015-07-08 19:31:10

标签: python pyqt pyqt4 wait qwidget

我正在编写一个PyQt应用程序,它需要在加载主窗口之前获得一些输入。我已经设置了以下类(最小化):

class MyInput(QWidget):
    def __init__(self):
        super(MyInput, self).__init__()
        self.thing = False

        mybutton = QPushButton('Press me', self)
        mybutton.clicked.connect(self.set_data)

    def set_data(self):
        self.hide()
        self.destroyLater()
        self.thing = True

    def get_thing(self):
        self.show()
        return self.thing

后来,我有这个功能:

def ask_thing():
    mi = MyInput()
    return mi.get_thing()

现在,当我调用ask_thing()时,我希望mi.get_thing()在返回值之前等待按下按钮(如果关闭则返回False)。但是,self.show()似乎单独运行并让代码继续执行,命中return语句并离开函数。

我如何等待输入?

1 个答案:

答案 0 :(得分:1)

也许您必须考虑从QWidget更改为QDialog。然后将函数show更改为exec_,这将执行小部件等待用户的交互。