PyQt QMessageBox блокируется или нет?Python

Программы на Python
Anonymous
PyQt QMessageBox блокируется или нет?

Сообщение Anonymous »

У меня есть некоторые операции, которые выполняются на этапе init() моего графического интерфейса. Он ищет наличие файла в определенном месте, и если находит его, появляется всплывающее окно с вопросом, хотят ли они загрузить настройки из этого файла. Когда я помещаю эту операцию в фазу init(), сначала появляется всплывающее окно, а графический интерфейс вообще отсутствует. Если я перенесу эту функцию на кнопку по требованию, за пределами init(), то она будет работать нормально. Появляется графический интерфейс, я нажимаю кнопку, появляется окно сообщения и т. д. Насколько я понимаю, очень сложно взаимодействовать с графическим интерфейсом из потоков вне основного потока, но потому что появляется окно сообщения, а графический интерфейс не загружается это, я предполагаю, что окно сообщения блокируется. В своих онлайн-исследованиях я обнаружил, что люди говорят, что это НЕ блокировка, но поведение, когда это окно сообщения появляется без загрузки остальной части графического интерфейса, говорит об обратном. Это заставляет меня думать, что мне нужно сделать окно сообщения неблокирующим, но я не знаю, как это сделать, кроме как запустить окно сообщения в другом потоке, что опять же может оказаться невозможным, поскольку вам нужно находиться в основном потоке. сделать это? Я читал о различиях в конструкции QMessageBox, .show() и ._exec() и т. д., но не уверен, что это решит проблему? Если вы хотите увидеть мой init() или скриншот поведения, я могу загрузить его.
Ниже приведен код, который я использую для запуска сообщения. коробка:
def popUpYN(self, message):
if QMessageBox.StandardButton.Yes == QMessageBox.question(
self,
'',
message,
QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No
):
return True
else:
return False
# // END popUpYN()


Подробнее здесь: https://stackoverflow.com/questions/790 ... ing-or-not

Вернуться в «Python»