私はPyQtで新しくなったので、テーブルセルの色を動的に変更する問題を解決しようとしています。ループためは、配列内の1を発見した場合テーブルウィジェットの色のプロパティを動的に変更するPyQT
機能testFunctionはtableWidgetの色を変更する必要がありますまたは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