sjaserds
@sjaserds
Студент

Как прервать выполнение программы и ждать пока пользователь нажмет на кнопку?

Изучаю PyQt и столкнулся с проблемой.
app = QApplication(sys.argv)
app.setStyleSheet(style)
w = StartWindow() # Первое окно с двумя кнопками Открыть папку и Закрыть окно
w.show()
window = ProjectWindow() # Второе окно с браузером QtWebEngineWidgets
w.btnOpenProject.clicked.connect(lambda: w.show_project(window)) #При нажатии на эту кнопку открывается второе окно
w.btnExit.clicked.connect(w.project_close) # Закрывает окно

while True:
    page = w.screen_shot_cam()
  
    if page == 8:
        window.open_page(1)
    else:
        window.open_page(2)
    
sys.exit(app.exec_())


При запуске программы у меня выполняется бесконечный цикл и программа зависает не успевая открыть первое окно.
Как мне сделать чтобы программа ждала пока пользователь нажмет какую либо кнопку и после этого выполнялась дальше? while True - эта конструкция мне вообще не нравится так как она сильно тормозит выполнение программы.
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
События графического интерфейса обрабатываются бесконечным циклом, который запускается, когда вы вызываете app.exec() Его нельзя останавливать, иначе приложение зависнет. Но ваш цикл именно это и делает, останавливает цикл обработки событий окна. Запускайте его в QThread.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Viji
@Viji
Associate DevOps Engineer
здесь много вариантов

https://stackoverflow.com/questions/983354/how-do-...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы