button.clicked.connect不适用于线程

时间:2019-07-28 02:11:06

标签: python python-3.x multithreading pyqt pyqt5

我需要有关使用线程库的button.clicked函数的帮助。

这是我尝试做的事情:

在这种情况下,我尝试将方法连接到按钮时,效果很好:

# gui.py

class MainApp(QtWidgets.QMainWindow, main_design.Ui_MainWindow):
    def __init__(self, settings_dict):
        super().__init__()
        self.setupUi(self)
        self.btn.clicked.connect(lambda x: print('Hello!'))

但是我需要将方法从另一个线程(线程库)连接到按钮:

# threads.py
import threading

class UpdateThread(threading.Thread):
    def __init__(self, window):
        super(UpdateThread, self).__init__()
        self.setDaemon(True)

        window.btn.clicked.connect(lambda x: print('Hello!')) # Not working

        window.btn.setDisabled(True) # Working fine!

它正在运行,没有错误。但是当我按下按钮时并没有继续。 window.btn.setDisabled(True)行工作正常。救救我。

0 个答案:

没有答案