python - QThread 信号发射两次

标签 python pyqt

创建了一个 Qthread 来处理我的应用程序的版本检查。线程工作完美,只是它发出了两次完成信号。

class myThread(QtCore.QThread):

    def run(self):
        print("Im running.")
        self.finished.emit()

    def stop(self):
        self.terminate()

class myApp(QtWidgets.QMainWindow, Ui_App):

    def __init__(self, parent=None):
        super(myApp, self).__init__()

        self.myThread = myThread()
        self.myThread.start()

        self.myThread.finished.connect(self.allDone)

    def allDone(self):
        print('Thread is done')

如何防止信号发射两次?

最佳答案

您的类myThread继承自QtCore.QThread,它已经具有finished信号,所以我假设问题是您的(多余的)行self.finished.emit().

这些看起来可能有帮助:

关于这样:

文档:

PySide Qt 绑定(bind)文档:

关于python - QThread 信号发射两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52457559/

相关文章:

python - 在带有 QT4 的 Python 中使用像素图或图像序列制作动画

python - QStyledItemDelegate 在QTableView中显示QComboBox

python - 如何使用 Holoviews Bokeh Datashader 进行 ylim 绘图限制

python - Django 中的类别、子类别和产品

python - 更改 QDate 的格式

python - Python 2.7 的 Qt5 和 QtQuick 2 绑定(bind)

python - Pyqt如何获取小部件的尺寸

python - 如何在没有用户交互的情况下显示模式 QDialog?

python - django如何将文本框输入插入到sqlite数据库?

python - 类型错误 : 'tuple' object is not callable in pygame