pyqt5设计一个左边是员工信息,右边显示数字的界面,数字来源是def get_data(): ser = serial.Serial('COM3', 9600) data = ser.readline() if data: print(data) ser.close() return data
时间: 2023-12-10 17:41:01 浏览: 126
PyQt5+serial
可以使用PyQt5中的QSplitter实现左右两边的布局,再在右边放置一个QLabel来显示数字。代码如下:
```python
import sys
import serial
from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout, QSplitter, QListWidget, QLabel
class MyWidget(QWidget):
def __init__(self):
super().__init__()
# 设置窗口大小和标题
self.setGeometry(100, 100, 800, 600)
self.setWindowTitle('员工信息')
# 创建QListWidget控件,用于显示员工信息
list_widget = QListWidget()
list_widget.addItems(['员工1', '员工2', '员工3', '员工4', '员工5', '员工6', '员工7', '员工8', '员工9', '员工10'])
# 创建QLabel控件,用于显示数字
label = QLabel()
# 创建QSplitter控件,将左右两边的控件放入其中
splitter = QSplitter()
splitter.addWidget(list_widget)
splitter.addWidget(label)
# 创建水平布局,并将QSplitter放入其中
hbox = QHBoxLayout()
hbox.addWidget(splitter)
# 设置布局
self.setLayout(hbox)
# 定时器,每隔1秒钟更新一次数字
self.timer = self.startTimer(1000)
def timerEvent(self, event):
# 获取数字
data = self.get_data()
# 更新数字
if data:
self.label.setText(str(data))
def get_data(self):
ser = serial.Serial('COM3', 9600)
data = ser.readline()
if data:
print(data)
ser.close()
return data
if __name__ == '__main__':
app = QApplication(sys.argv)
w = MyWidget()
w.show()
sys.exit(app.exec_())
```
在这个例子中,我们使用QListWidget控件来显示员工信息,使用QLabel控件来显示数字。我们还创建了一个定时器,在每隔1秒钟更新一次数字。在update函数中,我们调用了get_data函数来获取数字。注意,在get_data函数中我们使用了PySerial库来读取串口数据。
阅读全文