Я пишу приложение 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
и оставив функцию.
Как можно подождать ввода?
'QWidget' не имеет функции' exec' или 'exec_' (потому что Python). – 2mac
Правда. Возможно, вам стоит перейти на '' QDialog''. –