@SaVaB1379

Как отправить сигнал из другого потока?

Коротко:
Чтобы интерфейс не тормозил мне нужно выполнять функцию в другом потоке
но чтобы выполнить эту функцию мне нужен доступ к изменению интерфейса(что я могу сделать только из главного потока)

Вот упрощенный код ,так будет понятнее :

class Thr1(QThread):
    def __init__(self):
        super(SendMi, self).__init__()

    def run(self):
        ui.log.setText("123") #доступа к ui у меня нету


class App(QMainWindow):
    def __init__(self):
        super(App, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        self.ui.pushButton.clicked.connect(lambda: (Thr1().start())) #если нажать на кнопку выполниться тот поток

Как я могу отправить сигнал и принять его чтобы выполнить эту функцию из основного потока

Видел вот-что
self.emit(core.SIGNAL("dosomething(QString)")) # отправка сигнала
self.connect(self.thread, core.SIGNAL("dosomething(QString)"), self.doing) # прием сигнала

но это PyQt4
  • Вопрос задан
  • 166 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Многопоточность
Седой и строгий
https://qna.habr.com/q/349159
https://qna.habr.com/q/476980

Принципиальных отличий в этой части между Qt5 и Qt4 нет.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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