Ich habe ein Problem beim Festlegen der Hintergrundfarbe eines QWidgetItem basierend auf einem geänderten Wert.PyQt - Blink Hintergrundfarbe basierend auf Wertaktualisierung
Ich habe die folgende Einrichtung, die einfach Zufallszahlen in einem QTableWidget basierend auf einem Klick einer Schaltfläche generiert.
Ich möchte es machen, dass der Hintergrund einer Zelle ändert sich basierend, ob der neue Wert höher oder niedriger als der alte Wert ist. Wenn zum Beispiel der neue Wert höher ist, blinken Sie für eine Sekunde (oder eine halbe Sekunde) blau oder wenn der neue Wert niedriger ist, um für einige Zeit gelb zu blinken.
Ich bin ziemlich verloren, wo in diesem Prozess zu starten.
Vielen Dank
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import pyqtSlot
from random import randint
class App(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(100, 100, 350, 380)
self.createTable()
self.button = QPushButton('Update Values', self)
self.layout = QVBoxLayout()
self.layout.addWidget(self.tableWidget)
self.layout.addWidget(self.button)
self.setLayout(self.layout)
self.button.clicked.connect(self.on_click)
self.show()
def createTable(self):
self.tableWidget = QTableWidget()
self.nrows=10
self.ncols=3
self.tableWidget.setRowCount(self.nrows)
self.tableWidget.setColumnCount(self.ncols)
for i in range(self.nrows):
for j in range(self.ncols):
self.tableWidget.setItem(i, j, QTableWidgetItem('{}'.format(randint(0,9))))
self.tableWidget.move(0,0)
self.tableWidget.doubleClicked.connect(self.on_click)
@pyqtSlot()
def on_click(self):
for i in range(self.nrows):
for j in range(self.ncols):
self.tableWidget.setItem(i, j, QTableWidgetItem('{}'.format(randint(0,9))))
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())
Vielen Dank für die schöne Methode und klare Erklärung. Genau das, was ich gebraucht habe und werde auch die Referenzen studieren, die du gegeben hast. Prost! –