[英]How to change background color of selected or clicked cell in a pyqt5 QTableWidget?
[英]How to change Qtablewidget's specific cells background color in pyqt
我是pyqt4的新手,我無法弄清楚如何做到這一點。 我有一個包含數據的QtableWidget。 我想改變tableWidget的單元格的一些背景顏色。
我嘗試了self.tableWidget.item(3, 5).setBackground(QtGui.QColor(100,100,150))
並返回此錯誤:
AttributeError:'NoneType'對象沒有屬性'setBackground'
我該怎么辦?
您必須先在表格中的該位置創建項目,然后才能設置其背景顏色。
self.tableWidget.setItem(3, 5, QtGui.QTableWidgetItem())
self.tableWidget.item(3, 5).setBackground(QtGui.QColor(100,100,150))
import sys
from PyQt4 import QtGui, QtCore
lista = ['aa', 'ab', 'ac']
listb = ['ba', 'bb', 'bc']
listc = ['ca', 'cb', 'cc']
mystruct = {'A':lista, 'B':listb, 'C':listc}
class MyTable(QtGui.QTableWidget):
def __init__(self, thestruct, *args):
QtGui.QTableWidget.__init__(self, *args)
self.data = thestruct
self.setmydata()
def setmydata(self):
n = 0
for key in self.data:
m = 0
for item in self.data[key]:
newitem = QtGui.QTableWidgetItem(item)
if key == 'A':
newitem.setBackground(QtGui.QColor(100,100,150))
elif key == 'B':
newitem.setBackground(QtGui.QColor(100,150,100))
else:
newitem.setBackground(QtGui.QColor(150,100,100))
self.setItem(m, n, newitem)
m += 1
n += 1
def main(args):
app = QtGui.QApplication(args)
table = MyTable(mystruct, 5, 3)
table.show()
sys.exit(app.exec_())
if __name__=="__main__":
main(sys.argv)
http://www.saltycrane.com/blog/2006/10/qtablewidget-example-using-python-24/的略微修改版本
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.