jerwright
@jerwright
while True: coding()

Как убрать лаги PySide2?

Доброго времени суток. Столкнулся с такой проблемой, что во время выполнения цикла программой, написанной на PySide2 само окно начинает подвисать, в отличии от консоли. Возможно дело в time.sleep, но я пробовал и через QThread.sleep.

Код:
def fishing():

    sct = mss.mss()

    timeout = checking_timer()
    adding_box(msg_titles[0], f"Начало через {timeout} с. Скорее забросьте удочку! И обязательно откройте игру в оконном режиме для полноценной работы программы.", warning=None)
    ui.timeout_label.show()
    ui.timeout_info.show()
    while int(timeout)!=0:
        print(timeout)
        ui.timeout_info.setText(f'{timeout} секунд')
        timeout -= 1
        time.sleep(1)


    #ui.timeout_info.setText(f'{timeout} секунд')
    #timeout -= 1
    #time.sleep(1)
    
        
    ui.timeout_label.setText("Программа")
    ui.timeout_info.setText("запустилась!")
 
    click()
    #print("Удочка брошена ...")
    last_time = time.time() # time last fish was catched
    #...
  • Вопрос задан
  • 92 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
События графического интерфейса обрабатываются бесконечным циклом, который запускается, когда вы вызываете app.exec() Его нельзя останавливать, иначе приложение зависнет. Но ваш цикл именно это и делает, останавливает цикл обработки событий окна.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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