在 QLineEdit Widget 中显示传感器数据

问题描述

我正在尝试开发一个基于 Python 的 QT 应用程序,该应用程序在 QLineEdit 小部件中显示传感器数据。我能够成功读取单个通道数据并能够在控制台中打印,但是在尝试在 Qt Window 中显示相同的数据时出现错误。我正在使用 Seed grove(用于 RaspBerry Pi (STM32F030) 的 8 通道 12 位 ADC)。

这是我的代码

import sys
import time
from PyQt5.QtWidgets import*
from PyQt5.QtGui import*
from PyQt5 import QtCore,QtGui,QtWidgets
from grove.i2c import Bus

ADC_DEFAULT_IIC_ADDR = 0X04
ADC_CHAN_NUM = 8
 
REG_RAW_DATA_START = 0X10
REG_VOL_START = 0X20
REG_RTO_START = 0X30
REG_SET_ADDR = 0XC0

class Window(QWidget):
    def __init__(self,bus_num=1,addr=ADC_DEFAULT_IIC_ADDR):
        
        super().__init__()
        
            
        self.setGeometry(200,200,400,300)
        self.bus = Bus(bus_num)
        self.addr = addr
        self.setwindowTitle("ADC display panel")
        self.setStyleSheet("background-color: #25ffa4")            
        self.label = QLabel("ADC display Panel",self)
        self.label.move(100,10)
        font = QtGui.QFont()
        font.setBold(True)
        self.label.setFont(font)
        line_edit = QLineEdit("",self)
        line_edit.setGeometry(5,80,100,40)
        line_edit.setStyleSheet("background-color:White")
        line_edit1 = QLineEdit("",self)
        line_edit1.setGeometry(5,140,40)
        line_edit1.setStyleSheet("background-color:White")
        line_edit2 = QLineEdit("",self)
        line_edit2.setGeometry(5,40)
        line_edit2.setStyleSheet("background-color:White")
        
        
    def get_nchan_adc_raw_data(self,n):
        data=self.bus.read_i2c_block_data(self.addr,REG_RAW_DATA_START+n,2)
        val=data[1]<<8|data[0]
        return val
    
ADC = Window()
def main():
    while True:

            raw_data_chn0=ADC.get_nchan_adc_raw_data(0)
            line_edit.setText(int(raw_data_chn0))
            raw_data_chn1=ADC.get_nchan_adc_raw_data(1)
            line_edit1.setText(int(raw_data_chn1))
            raw_data_chn2=ADC.get_nchan_adc_raw_data(2)
            line_edit2.setText(int(raw_data_chn2))
            raw_data_chn3=ADC.get_nchan_adc_raw_data(3)
            raw_data_chn4=ADC.get_nchan_adc_raw_data(4)
            raw_data_chn5=ADC.get_nchan_adc_raw_data(5)
            raw_data_chn6=ADC.get_nchan_adc_raw_data(6)
            raw_data_chn7=ADC.get_nchan_adc_raw_data(7)
        
if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = Window()
    window.show()
    sys.exit(app.exec_())

运行上述程序时出现以下错误

QWidget: must construct a QApplication before QWidget

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)