等待触发
Wait for a trigger
我正在编写一个 PyQt 应用程序,它需要在加载主 window 之前获得一些输入。我已经设置了以下class(最小化):
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()
在 return 值之前等待按钮被按下(或者 return False 如果它已关闭)。但是,self.show()
似乎单独 运行 并让代码继续执行,命中 return
语句并离开函数。
如何等待输入?
也许你必须考虑从 QWidget
更改为 QDialog
。然后将函数 show
更改为 exec_
,这将执行等待用户交互的小部件。
我正在编写一个 PyQt 应用程序,它需要在加载主 window 之前获得一些输入。我已经设置了以下class(最小化):
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()
在 return 值之前等待按钮被按下(或者 return False 如果它已关闭)。但是,self.show()
似乎单独 运行 并让代码继续执行,命中 return
语句并离开函数。
如何等待输入?
也许你必须考虑从 QWidget
更改为 QDialog
。然后将函数 show
更改为 exec_
,这将执行等待用户交互的小部件。