陆国伟 2020-06-02 16:02 采纳率: 0%
浏览 455

Pyqt如何利用线程去调用ui界面代码中的QlineEdit模块的输入

我使用QtDesigner设计了ui界面并且用PyUI生成ui界面的.py文件。之后我另外开了一个py脚本调用主界面,为了防止运行循环导致界面卡死,我写了一个子线程,但是怎么在子线程去调用ui界面代码中的QlineEdit模块?请问有没有大佬能帮小弟解决已经搞了快两周了还没解决!!

from PCANBasic import *
import time
import sys
from PyQt5.QtWidgets import QApplication, QDialog
from PyQt5.QtCore import *
from testcan import Ui_can_test

class can_thread2(QThread,Ui_can_test):
    def __init__(self):
        super(can_thread2, self).__init__()

    def run(self):
        #想调用生成testcan界面下的QlineEdit模块的输入内容
        msg.ID = int(self.ID_Edit.text()) 
        msg.LEN = int(self.Len.text())
        msg.DATA[0] = int(self.data0.text())
        msg.DATA[1] = int(self.data1.text())
        msg.DATA[2] = int(self.data2.text())
        msg.DATA[3] = int(self.data3.text())
        msg.DATA[4] = int(self.data4.text())
        msg.DATA[5] = int(self.data5.text())
        msg.DATA[6] = int(self.data6.text())
        msg.DATA[7] = int(self.data7.text())

        objPCAN.Write(PCAN_USBBUS1, msg)


class can_test_win(QDialog, Ui_can_test):
    def __init__(self):
        super(can_test_win, self).__init__()
        self.setupUi(self)

        self.thread2 = can_thread2()
        self.send_btn2.clicked.connect(lambda :self.thread2.start())

if __name__ == "__main__":
    app = QApplication(sys.argv)
    MainWin = can_test_win()

    objPCAN = PCANBasic()
    objPCAN.Initialize(PCAN_USBBUS1, PCAN_BAUD_500K)
    msg = TPCANMsg()
    msg.MSGTYPE = PCAN_MESSAGE_STANDARD
    MainWin.show()

    sys.exit(app.exec())

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-08-08 15:00
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 求解 yolo算法问题
  • ¥15 虚拟机打包apk出现错误
  • ¥30 最小化遗憾贪心算法上界
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝