我使用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())