由於我是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