【问题标题】:Wait for a trigger等待触发
【发布时间】:2015-09-26 21:55:11
【问题描述】:

我正在编写一个 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 语句并离开函数。

如何等待输入?

【问题讨论】:

    标签: python pyqt pyqt4 wait qwidget


    【解决方案1】:

    也许您必须考虑将QWidget 更改为QDialog。然后将函数show改成exec_,执行widget等待用户交互。

    【讨论】:

    • QWidget 没有 execexec_(因为 Python)函数。
    • 是的。也许你应该改为QDialog
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-20
    • 2021-11-01
    • 2019-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    相关资源
    最近更新 更多