采用继承的写法 slot
在槽 程序想要接收输入框内的值 并通过串口发送出去
输入框输入的是想要加到 字符串 motor circle'+' '+data16['data'] +'10' 中
def slot_Send_data16(self, parameter): # 定义变量 paramater参数
print("发送数据")
data16 = {}
data16['data'] = self.ui.lineEdit.text() # 数据等于lineEdit的值 简单文本用text()
now = datetime.now()
date_time = now.strftime("%Y-%m-%d, %H:%M:%S")
ss = "[" + date_time + "] 发→" + 'motor circle'+' '+data16['data'] +'10\r\n'
print(ss)
self.opt.write(ss)
self.opt.flush()
if self.state != 1: # 不等于1 则返回,1串口打开,信号发送
return
print("发送数据")
Byte_data16 = str.encode('motor circle'+' '+ data16['data']+' 10\r\n')
print(Byte_data16)
self.Serial.write(Byte_data16)
self.signal_Send_data16_length16.emit(len(Byte_data16)) # 了解发送长
thread.py的程序很简单 差不多结构就是这样 ui不知道怎么调用了 或者 self.?.lineEdit.text 怎么改
线程里怎么获取控件内的值
from PyQt5.QtCore import QThread, pyqtSignal, QObject
import threading
from PyQt5.QtSerialPort import QSerialPort
from datetime import datetime
import serial_ui
class Serial_Qthread_function(QObject):
# 信号
signal_Srialstart_function = pyqtSignal()
signal_Send_data16 = pyqtSignal(object)
signal_Send_data16_length16 = pyqtSignal(object) # 第16个按钮的字节长度
def __init__(self, parent=None):
super(Serial_Qthread_function, self).__init__(parent)
print("初始化时候线程", threading.current_thread().ident)
# 初始化状态
self.state = 0 # 0未打开 1串口已打开 2串口已关闭
def slot_Send_data16(self, parameter): # 定义变量 paramater参数
print("发送数据")
data16 = {}
data16['data'] = self.ui.lineEdit.text() # 数据等于lineEdit的值 简单文本用text()
now = datetime.now()
date_time = now.strftime("%Y-%m-%d, %H:%M:%S")
ss = "[" + date_time + "] 发→" + 'motor circle'+' '+data16['data'] +'10\r\n'
print(ss)
self.opt.write(ss)
self.opt.flush()
if self.state != 1: # 不等于1 则返回,1串口打开,信号发送
return
print("发送数据")
Byte_data16 = str.encode('motor circle'+' '+ data16['data']+' 10\r\n')
print(Byte_data16)
self.Serial.write(Byte_data16)
self.signal_Send_data16_length16.emit(len(Byte_data16)) # 了解发送长
这句是不对的 我采用的槽 好像不能收到lineEdit内的值
data16['data'] = self.ui.lineEdit.text() # 数据等于lineEdit的值 简单文本用text()
报错 AttributeError: 'QSerialPort' object has no attribute 'ui'
把文本框里面的值直接get出来呢,用按钮发送,或者链接焦点离开自动发送
报错显示从类QSerialPort中找不到 ui 呢,能不能把类的结构展示出来,ui 一般在界面类中管理或访问哦,你这个self 不会继承的是 QSerialPort 吧