猿问

从 Qrunnable 连接一个 pyqtSignal

我正在尝试制作一个监控硬件的应用程序,我想使用 Qthreadpool 而不是为每个小部件设置一个线程,并且我无法连接信号以显示输出。我也没有收到任何错误。


我的旧代码运行良好并显示它应该使用 QThread 的内容:


import sys

from PyQt4 import QtCore, QtGuiimport ui

import time

import mem_stats



class MainClass(QtGui.QMainWindow, ui.Ui_MainWindow):

        def __init__(self, parent= None):

        super(MainClass, self).__init__(parent)

        self.setupUi(self)

        self.mem_worker = MemWorker()

        self.mem_worker.start()

        self.connect(self.mem_worker, QtCore.SIGNAL('MEM_STATS'),self.show_mem_stats)


    def show_mem_stats(self, free_mem):

        self.free_memory_lcd.display(free_mem)



class MemWorker(QtCore.QThread):

    def __init__(self):

    super(MemWorker, self).__init__()


    def run(self):

        while True:

            free_mem = mem_stats.free_mem()

            self.emit(QtCore.SIGNAL('MEM_STATS'), free_mem)

            time.sleep(1)



if __name__ == '__main__':

    a = QtGui.QApplication(sys.argv)

    app = MainClass()

    app.show()

    sys.exit(a.exec_())

但是当我将 MemWorker 类更改为 QRunnable 时,代码运行没有错误,但 QlcdNumber 不显示任何内容。


HUH函数
浏览 109回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答