我正在为树莓派平台开发一个应用程序,用于实时查看数据。我正在使用Python 3.5.3和PyQt5。我已经使用Qt Designer创建了用户界面并将其转换为py文件。当我运行文件时,它可以正常工作并显示界面。但是,当我尝试与arduino进行串行通信时,数据即将到来,并且界面未显示。然后,我尝试了另一个功能的串行读取。然后显示界面,但是当串行读取功能激活界面没有响应时。自程序启动以来,我需要程序读取串行数据并更新界面中的标签。帮我解决这个问题。
from PyQt5 import QtWidgets
from qtdesign import Ui_Form
import sys
import serial
from PyQt5.QtWidgets import QMessageBox
global ser
import time
class ApplicationWindow(QtWidgets.QMainWindow):
def __init__(self):
super(ApplicationWindow, self).__init__()
global ser
self.ui = Ui_Form()
self.ui.setupUi(self)
self.ui.pushButtonAbout.clicked.connect(self.about)
self.ui.pushButtonClose.clicked.connect(self.close)
self.ui.pushButtonData.clicked.connect(self.getData)
ser = serial.Serial("/dev/ttyUSB0",baudrate = 115200, timeout = 1)
#self.getData()
while True:
self.getData()
time.sleep(2)
#getData = ser.readline().decode()
#print(getData)
def getData(self):
global ser
Data = ser.readline().decode()
print(Data)
#self.ui.labelAlt.clear()
#data1 = getData.split('.')
#d1 = int(data1[0])
#self.ui.labelAlt.setText(d1)
#print(Data)
def main():
app = QtWidgets.QApplication(sys.argv)
application = ApplicationWindow()
application.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main()