pyqt设计一个串口助手,该串口助手可以通过comboBox控件选择串口号,然后点击pushButton连接串口
时间: 2023-07-18 07:26:40 浏览: 52
下面是一个简单的串口助手的代码,包括了comboBox、pushButton、QSerialPort等控件的使用:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow, QComboBox, QPushButton, QTextEdit
from PyQt5.QtSerialPort import QSerialPort, QSerialPortInfo
import sys
class SerialAssistant(QMainWindow):
def __init__(self):
super().__init__()
# 初始化串口
self.serial = QSerialPort()
# 创建comboBox
self.comboBox = QComboBox(self)
self.comboBox.setGeometry(50, 50, 100, 30)
self.comboBox.currentIndexChanged.connect(self.updatePort)
# 创建pushButton
self.pushButton = QPushButton("连接串口", self)
self.pushButton.setGeometry(200, 50, 100, 30)
self.pushButton.clicked.connect(self.connectPort)
# 创建QTextEdit
self.textEdit = QTextEdit(self)
self.textEdit.setGeometry(50, 100, 250, 200)
# 初始化串口号
self.updatePort()
def updatePort(self):
# 更新串口号列表
self.comboBox.clear()
portList = QSerialPortInfo.availablePorts()
for info in portList:
self.comboBox.addItem(info.portName())
def connectPort(self):
# 连接串口
portName = self.comboBox.currentText()
self.serial.setPortName(portName)
self.serial.setBaudRate(QSerialPort.Baud9600)
self.serial.setDataBits(QSerialPort.Data8)
self.serial.setParity(QSerialPort.NoParity)
self.serial.setStopBits(QSerialPort.OneStop)
self.serial.open(QSerialPort.ReadWrite)
self.serial.readyRead.connect(self.receiveData)
def receiveData(self):
# 接收数据
data = self.serial.readAll()
self.textEdit.append(data.decode())
if __name__ == "__main__":
app = QApplication(sys.argv)
window = SerialAssistant()
window.setGeometry(100, 100, 350, 350)
window.show()
sys.exit(app.exec_())
```
运行后,先选择串口号,然后点击连接串口按钮即可连接到选择的串口。连接成功后,可以通过串口收发数据,并且收到的数据会显示在QTextEdit中。注意,这只是一个简单的示例代码,实际使用时可能需要根据具体需求进行修改和完善。