Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 使用pyqt5读取特定值时更改QLCDNAMER颜色_Python 3.x_User Interface_Pyqt5_Background Color_Qlcdnumber - Fatal编程技术网

Python 3.x 使用pyqt5读取特定值时更改QLCDNAMER颜色

Python 3.x 使用pyqt5读取特定值时更改QLCDNAMER颜色,python-3.x,user-interface,pyqt5,background-color,qlcdnumber,Python 3.x,User Interface,Pyqt5,Background Color,Qlcdnumber,我有一个读取传感器数据的代码,并将其输出到我使用的python3和pyqt5的LCD编号 现在,我一直在做轮胎没有运气是改变背景颜色的LCD数字时,它达到一定的价值。e、 g.当值低于100时,LCD窗口小部件的背景为红色或图像显示过低,如果介于100-300之间,则为绿色,超过300时,再次变为红色。我希望这是有意义的,有人知道我如何使用pyqt5实现这一点吗 以下是我的LCD编号代码的相关部分 class Worker(QtCore.QThread): valueFound = Qt

我有一个读取传感器数据的代码,并将其输出到我使用的python3和pyqt5的LCD编号

现在,我一直在做轮胎没有运气是改变背景颜色的LCD数字时,它达到一定的价值。e、 g.当值低于100时,LCD窗口小部件的背景为红色或图像显示过低,如果介于100-300之间,则为绿色,超过300时,再次变为红色。我希望这是有意义的,有人知道我如何使用pyqt5实现这一点吗

以下是我的LCD编号代码的相关部分

class Worker(QtCore.QThread):
    valueFound = QtCore.pyqtSignal(int, name="valueFound")

使用Qt样式表

import sys
from random          import randint
from PyQt5.QtWidgets import QApplication, QMainWindow 
from PyQt5.QtCore    import QTimer

from ui import Ui_MainWindow

class Form(QMainWindow):
    def __init__(self):
        super().__init__()

        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        self.i = 0 
        self.voltageMin = 180 
        self.voltageMax = 180
        self.ui.lcdNumberCur.display(self.i)
        self.ui.lcdNumberCur.setStyleSheet("QLCDNumber { background-color: yellow }")

        self.ui.pushButton.clicked.connect(self.startTimer)

        self.timer = QTimer(self)  
        self.timer.setInterval(1000)
        self.timer.timeout.connect(self.updateData)

        self.show()        

    def startTimer(self):  
        if self.ui.pushButton.text() == "Start Timer":
            self.timer.start(1000) 
            self.ui.pushButton.setText("Stop Timer")            
        else:
            self.ui.pushButton.setText("Start Timer")
            self.timer.stop() 

    def updateData(self):
        voltage = randint(80, 350)                  # <--- insert your average voltage here
        self.ui.lcdNumberCur.display(voltage) 
        if voltage > self.voltageMax:
            self.voltageMax = voltage
            self.ui.lcdNumberMax.display(self.voltageMax) 
            if self.voltageMax > 300:
                self.ui.lcdNumberMax.setStyleSheet("""QLCDNumber { 
                                                    background-color: red; 
                                                    color: white; }""")
            else: 
                self.ui.lcdNumberMax.setStyleSheet("""QLCDNumber 
                                                   { background-color: green; 
                                                     color: yellow;
                                                   }""")

        elif voltage < self.voltageMin:
            self.voltageMin = voltage
            self.ui.lcdNumberMin.display(self.voltageMin)  
            if self.voltageMin < 90:
                self.ui.lcdNumberMin.setStyleSheet("""QLCDNumber { 
                                                    background-color: red; 
                                                    color: white; }""")
            else: 
                self.ui.lcdNumberMin.setStyleSheet("""QLCDNumber 
                                                   { background-color: green; 
                                                     color: yellow;
                                                   }""")            


if __name__ == '__main__':
    app = QApplication(sys.argv)
    frm = Form()
    sys.exit(app.exec_())
导入系统 从随机导入randint 从PyQt5.QtWidgets导入QApplication,QMainWindow 从PyQt5.QtCore导入QTimer 从ui导入ui_主窗口 班级表格(QMainWindow): 定义初始化(自): super()。\uuuu init\uuuuu() self.ui=ui\u主窗口() self.ui.setupUi(self) self.i=0 自电压=180 自电压最大值=180 self.ui.lcdNumberCur.display(self.i) self.ui.lcdNumberCur.setStyleSheet(“QLCDNumberNumber{背景色:黄色}”) self.ui.button.clicked.connect(self.startTimer) self.timer=QTimer(self) 自动定时器设置间隔(1000) self.timer.timeout.connect(self.updateData) self.show() def startTimer(自): 如果self.ui.putton.text()=“启动计时器”: 自动定时器启动(1000) self.ui.button.setText(“停止计时器”) 其他: self.ui.button.setText(“启动计时器”) self.timer.stop() def更新数据(自身): 电压=randint(80350)#自电压最大值: 自电压最大=电压 self.ui.lcdNumberMax.display(self.voltageMax) 如果self.voltageMax>300: self.ui.lcdNumberMax.setStyleSheet(““”QLCDNumber{ 背景色:红色; 颜色:白色;}“”) 其他: self.ui.lcdNumberMax.setStyleSheet(““”QLCDNumber {背景色:绿色; 颜色:黄色; }""") elif电压<自电压: 自电压=电压 self.ui.lcdNumberMin.display(self.voltageMin) 如果自电压小于90: self.ui.lcdNumberMin.setStyleSheet(““”QLCDNumber{ 背景色:红色; 颜色:白色;}“”) 其他: self.ui.lcdNumberMin.setStyleSheet(““”QLCDNumber {背景色:绿色; 颜色:黄色; }""") 如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu': app=QApplication(sys.argv) frm=形式() sys.exit(app.exec_())

谢谢@S.Nick,这对我很有效。你知道这是否也适用于图像?因此,它将LCD编号的样式表更改为图像,而不是颜色。@Almas Shah抱歉,我不理解你的问题。创建一个新问题,并随问题附上示例代码。
self.worker = Worker(self)
self.worker.valueFound.connect(self.OnValueFound)
def OnValueFound(self, value):
        self.ui.lcdNumber.display(value)
import sys
from random          import randint
from PyQt5.QtWidgets import QApplication, QMainWindow 
from PyQt5.QtCore    import QTimer

from ui import Ui_MainWindow

class Form(QMainWindow):
    def __init__(self):
        super().__init__()

        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        self.i = 0 
        self.voltageMin = 180 
        self.voltageMax = 180
        self.ui.lcdNumberCur.display(self.i)
        self.ui.lcdNumberCur.setStyleSheet("QLCDNumber { background-color: yellow }")

        self.ui.pushButton.clicked.connect(self.startTimer)

        self.timer = QTimer(self)  
        self.timer.setInterval(1000)
        self.timer.timeout.connect(self.updateData)

        self.show()        

    def startTimer(self):  
        if self.ui.pushButton.text() == "Start Timer":
            self.timer.start(1000) 
            self.ui.pushButton.setText("Stop Timer")            
        else:
            self.ui.pushButton.setText("Start Timer")
            self.timer.stop() 

    def updateData(self):
        voltage = randint(80, 350)                  # <--- insert your average voltage here
        self.ui.lcdNumberCur.display(voltage) 
        if voltage > self.voltageMax:
            self.voltageMax = voltage
            self.ui.lcdNumberMax.display(self.voltageMax) 
            if self.voltageMax > 300:
                self.ui.lcdNumberMax.setStyleSheet("""QLCDNumber { 
                                                    background-color: red; 
                                                    color: white; }""")
            else: 
                self.ui.lcdNumberMax.setStyleSheet("""QLCDNumber 
                                                   { background-color: green; 
                                                     color: yellow;
                                                   }""")

        elif voltage < self.voltageMin:
            self.voltageMin = voltage
            self.ui.lcdNumberMin.display(self.voltageMin)  
            if self.voltageMin < 90:
                self.ui.lcdNumberMin.setStyleSheet("""QLCDNumber { 
                                                    background-color: red; 
                                                    color: white; }""")
            else: 
                self.ui.lcdNumberMin.setStyleSheet("""QLCDNumber 
                                                   { background-color: green; 
                                                     color: yellow;
                                                   }""")            


if __name__ == '__main__':
    app = QApplication(sys.argv)
    frm = Form()
    sys.exit(app.exec_())