PyQt中的thread,emit方法获取d

2024-04-25 13:08:02 发布

您现在位置:Python中文网/ 问答频道 /正文

当我调用Continusread方法时,我试图在我的用户界面中获得Count_total_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()

Tags: fromimportselfuiinitvaluedefcount
1条回答
网友
1楼 · 发布于 2024-04-25 13:08:02

在线程类的run()方法中,MyThreadCount_total_value='toto'设置为self.Count_total_value='toto'。在

请注意,在stackoverflow上发布时,您应该:

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

相关问题 更多 >