问题描述
我正在尝试开发一个基于 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 (将#修改为@)