Как передать параметры в поток на pyqt5?

Пользователь

от magali , в категории: Python , 2 месяца назад

Как передать параметры в поток на pyqt5?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от kennedi_pfeffer , 2 месяца назад

@magali 

Чтобы передать параметры в поток на PyQt5, можно использовать класс QThread, который предоставляет методы для управления потоком выполнения.


Вот пример кода, который показывает, как передавать параметры в поток на PyQt5:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
from PyQt5.QtCore import QThread, pyqtSignal

class Worker(QThread):
    finished = pyqtSignal()

    def __init__(self, param1, param2):
        super().__init__()
        self.param1 = param1
        self.param2 = param2

    def run(self):
        # выполнение работы с параметрами
        # ...
        self.finished.emit()

# создаем объект потока
worker_thread = Worker(param1_value, param2_value)
# запускаем поток
worker_thread.start()
# ожидаем завершения потока
worker_thread.finished.connect(app.exit)


В этом примере мы создали класс Worker, который наследуется от QThread и принимает два параметра в конструкторе: param1 и param2. Затем мы определили метод run(), который выполняет работу с этими параметрами. Когда работа завершена, мы отправляем сигнал finished, который используется для остановки приложения.


Для запуска потока мы создали объект worker_thread и передали ему значения параметров param1_value и param2_value. Затем мы вызываем метод start() для запуска выполнения потока. И наконец, мы соединяем сигнал finished с методом exit() объекта app, который используется для завершения приложения.