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上过账时,您应该:
好的,非常感谢,很有效!很抱歉你的两句话,我非常理解。下次我会尽力纠正这两点。谢谢