Задать вопрос
Ответы пользователя по тегу PyQt
  • Почему замерает окно приложения PyQt5?

    Vindicar
    @Vindicar
    RTFM!
    Потому что join() останавливает поток выполнения - в твоем случае поток GUI, который отвечает за работу окна приложения - пока целевой поток не завершится. Т.е. что ты делаешь - это эквивалент как если бы ты просто вызвал self.sucess_send_request(link, valid_proxy) прямо в обработчике события.

    Нужно дождаться завершения к какому моменту? К моменту закрытия окна? Или ещё к какому?
    Я бы сделал так: создай глобальные объекты (например, поля класса), доступные всем потокам. Один - типа threading.Lock, один - счётчик и один - типа threading.Event().
    Когда поток запускается, он захватывает Lock, увеличивает счётчик и сбрасывает Event (метод clear()), отпускает Lock.
    Когда поток готов завершиться, он захватывает Lock, уменьшает счётчик. Если после уменьшения счётчик стал равен 0, устанавливает Event (метод set()). Затем отпускает Lock. Убедись, что это происходит внутри try: finally:, чтобы непойманное исключение не сломало систему.

    Тогда главный поток приложения может просто время от времени проверять текущее значение счётчика (число активных потоков). А если надо, то может ждать на объекте Event, чтобы дождаться завершения всех потоков.
    Ответ написан
    3 комментария
  • Как получить результат и вывести его в другом окне?

    Vindicar
    @Vindicar
    RTFM!
    self.results = self.cursor.fetchall()
    self.output.setText(self.results)

    Я очень сомневаюсь, что label сумеет переварить список строк в качестве содержимого.
    Ответ написан
    Комментировать
  • Как остановить выполнение программы спустя какое-то время?

    Vindicar
    @Vindicar
    RTFM!
    Просто добавь параметр timeout в FACE_UNLOCK(), фиксируй текущее время перед входом в цикл while(cam.isOpened()), а внутри цикла проверяй, истекло ли достаточно много времени или нет.
    Ответ написан
    1 комментарий