由于我是PyQt中的新手,我试图通过动态改变表格单元格的颜色来解决问题 - 帮助是非常值得欢迎的。PyQT动态地自动改变表格部件的颜色属性
功能testFunction应该改变tableWidget颜色如果for循环在阵列发现1或0是否有可能设置该属性?盒子应该每2秒钟自动改变颜色而不需要任何额外的动作。检查下面的代码...
import sys, os
from PyQt4 import QtGui, QtCore
class MainWindow(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
self.setWindowTitle("Hello!")
self.tableWidget = QtGui.QTableWidget()
self.tableItem = QtGui.QTableWidgetItem()
self.tableWidget.resize(400,250)
self.tableWidget.setRowCount(1)
self.tableWidget.setColumnCount(1)
self.tableWidget.setItem(0,0, QtGui.QTableWidgetItem("START TOOL"))
self.tableWidget.item(0,0).setBackground(QtGui.QColor(100,100,150))
realLayout = QtGui.QVBoxLayout()
realLayout.addWidget(tableWidget)
self.setLayout(realLayout)
self.testFunction()
def testFunction(self) :
a = [1,0,1,1,1,1,1,0,0,0,0,0,1]
for i in range(0,len(a)) :
if a[i] == 1 :
self.tableWidget.item(0,0).setBackground(QtGui.QColor(100,100,100))
else :
self.tableWidget.item(0,0).setBackground(QtGui.QColor(0,255,0))
time.sleep(2)
def main():
app = QtGui.QApplication(sys.argv)
GUI = MainWindow()
GUI.show()
sys.exit(app.exec_())
if __name__ == '__main__' :
main()
因为你您的代码不工作需要先将数据添加到你的tableWidget中。目前,你的tableWidget是空的。这里是一个简单的[示例](https://pythonspot.com/en/qt4-table/),介绍如何添加数据。你也需要有一个对'tableWidget'的引用,用于'self.tableWidget'。 – SyedElec
谢谢@SyedElec。我已根据您的建议修改代码。现在我仍然需要自动分配颜色并将其更改为表格单元格。主要想法是,更改数组“a”中的项目应该会导致实时更改背景颜色。 –
@IvanB如何更改数组“a”? – eyllanesc