PyQt5中的线程通信

时间:2015-12-27 12:35:20

标签: multithreading python-3.x pyqt5

我到处寻找,但我无法找到问题的答案。我需要你在PyQt5中关于QThread线程的帮助。为了学习,我在main.py文件中创建了两个类。其中一个类是GUI类,另一个是使用QThread对象创建的线程。

from PyQt5 import QtCore, QtGui, QtWidgets
import threading_gui # contains GUI generated by pyuic5

class Change_values(QtCore.QThread):
    def __init__(self, parent = None, str_variable, int_variable):
        self.var1 = str_variable
        self.var2 = int_variable

    def run(self):
        self.var1 += ' testing thread communication'
        self.var2 += 4

class MainWindow(QtWidgets.QMainWindow, threading_gui.UI_MainWindow):

    change_signal = QtCore.pyqtSignal(str, int, name='change_signal')

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

        self.btn_Run.clicked.connect(self.process_data)

        self.thread1 = Change_values('I am', 3)

    def process_data(self):
        self.thread1.start()

这是我设法做到的。现在我需要有人来解释我如何从线程Change_values中发出信号并在我的GUI线程中显示变量var1和var2的内容。

我能够找到PyQt4的例子,但是当谈到PyQt5时没什么用处。提前谢谢大家。

0 个答案:

没有答案