我的程序中有一个QTableWidget。我希望它的行和列根据表小部件中的时间条目更改颜色。当我第一次添加时间时,它会与当前的系统时间进行比较,颜色更改确实会生效,但随着时间的推移,它不会跟上,颜色保持不变。我希望它不断更新表项的颜色。我不能包括所有的代码,因为它太长,但我已经包括了相关的部分。你知道吗
#Operations_Tree is the QTABLEWIDGET
def Scheduler_Loop(self):
Timer = QtCore.QTimer(self)
Timer.start(1000)
Timer.timeout.connect(self.test)
def test(self):
time = QtCore.QTime.currentTime()
current_time_text = time.toString('hh:mm:ss')
for row in range(0,self.Operations_Tree.rowCount()):
time = self.Operations_Tree.item(row,1)
time_text = time.text()
#print(time_text)
if time_text >= current_time_text :
for column in range(0,6):
#print("TEST")
try:
table_widget_item = self.Operations_Tree.item(row, column)
table_widget_item.setForeground(QtGui.QColor(0,0,255)) #BLue
table_widget_item.setBackground(QtGui.QColor(238,233,233)) #
table_widget_item.viewport.update()
except AttributeError:
pass
else:
for column in range(0,6):
#print("TEST")
try:
table_widget_item = self.Operations_Tree.item(row, column)
#table_widget_item.setForeground(QtGui.QColor(0,255,0)) #
table_widget_item.setBackground(QtGui.QColor(238,233,233)) #
table_widget_item.viewport.update()
except AttributeError:
pass
self.Operations_Tree.update()
以下是我的节目片段:
对我来说,主要的问题是比较字符串而不是时间,同样在Qt中也没有必要使用try,除非它们在很多时候隐藏错误并浪费不必要的资源,最好是验证。你知道吗
PyQt5:
PyQt4:
相关问题 更多 >
编程相关推荐