Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:PyQt中的线程,emit方法获取数据_Python_Multithreading_Pyqt - Fatal编程技术网

Python:PyQt中的线程,emit方法获取数据

Python:PyQt中的线程,emit方法获取数据,python,multithreading,pyqt,Python,Multithreading,Pyqt,当我调用continuesread方法时,我尝试在我的用户界面中获取Count\u total\u value的值(根据我想做的,它应该是“toto”),但它始终是显示的默认值“azerty”。你能告诉我哪里错了吗 这是我的代码: #!/usr/bin/env python3 from PyQt4 import QtCore, QtGui import sys import os import subprocess import time import threading from ctype

当我调用
continuesread
方法时,我尝试在我的用户界面中获取
Count\u total\u value
的值(根据我想做的,它应该是
“toto”
),但它始终是显示的默认值
“azerty”
。你能告诉我哪里错了吗

这是我的代码:

#!/usr/bin/env python3
from PyQt4 import QtCore, QtGui

import sys
import os
import subprocess
import time
import threading
from ctypes import *
import ctypes
#import Converted Python UI File
from test_error_rx import Ui_MainWindow

class MyThread(QtCore.QThread):
    Count_total_valuechanged = QtCore.pyqtSignal(str)

    def __init__(self, parent=None):
        super(MyThread, self).__init__(parent=parent)
        self.Count_total_value = 'Azerty'

    def run(self):
    ##do things to calculate Count_total_value
        Count_total_value='toto'
        self.Count_total_valuechanged.emit((self.Count_total_value))
        time.sleep(0.1)


class Main( QtGui.QMainWindow,QtGui.QWidget):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        # Connect the Buttons
        QtCore.QObject.connect(self.ui.Continusread,QtCore.SIGNAL("clicked()"),self.Continusread)

        self.__thread = MyThread(self)
        self.__thread.Count_total_valuechanged.connect(self.ui.Count_total.setText)

    def Continusread(self):
       self.__thread.start()

    def main():
        app = QtGui.QApplication(sys.argv)
        window = Main()
        window.show()
        sys.exit(app.exec_())

    if __name__ == "__main__":
        main()
在线程类的
run()
方法
MyThread
中,设置
Count\u total\u value='toto'
何时应该是
self.Count\u total\u value='toto'

请注意,在stackoverflow上过账时,您应该:

  • 发布一个minimilisticworking示例(上面的代码中没有包含UI,因此没有人可以运行您的脚本)
  • 检查发布的代码是否有正确的缩进,并修复任何错误(您发布的代码是一堆不正确的缩进)

  • 好的,非常感谢,很有效!很抱歉你的两句话,我非常理解。下次我会尽力纠正这两点。谢谢