qt串口显示接收不换行
时间: 2023-09-29 07:07:36 浏览: 227
您可以在接收到数据时使用 `QTextEdit` 控件的 `insertPlainText()` 方法来显示数据,这样就不会自动换行了。示例代码如下:
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QTextEdit
from PyQt5.QtSerialPort import QSerialPort, QSerialPortInfo
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建串口对象
self.serial = QSerialPort(self)
self.serial.readyRead.connect(self.on_serial_ready_read)
# 创建文本编辑框
self.text_edit = QTextEdit(self)
self.setCentralWidget(self.text_edit)
# 打开串口
port_name = "COM1" # 串口名
baud_rate = QSerialPort.Baud9600 # 波特率
data_bits = QSerialPort.Data8 # 数据位
parity = QSerialPort.NoParity # 校验位
stop_bits = QSerialPort.OneStop # 停止位
self.serial.setPortName(port_name)
self.serial.setBaudRate(baud_rate)
self.serial.setDataBits(data_bits)
self.serial.setParity(parity)
self.serial.setStopBits(stop_bits)
if self.serial.open(QSerialPort.ReadWrite):
print(f"串口 {port_name} 已打开")
else:
print(f"串口 {port_name} 打开失败")
def on_serial_ready_read(self):
data = self.serial.readAll()
self.text_edit.insertPlainText(data)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
```
在上面的代码中,我们使用了 `QTextEdit` 控件的 `insertPlainText()` 方法来显示接收到的数据。这个方法不会自动换行,所以数据会在同一行上连续显示。
阅读全文