可以通过QTableWidgetItem的setBackground方法来设置单元格的背景颜色,具体步骤如下:
创建一个QTableWidgetItem对象。
调用setBackgroundColor方法设置单元格的背景色。
将QTableWidgetItem对象添加到QTableWidget中。
示例代码:
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem, QVBoxLayout, QWidget
from PyQt5.QtGui import QColor
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 创建一个表格,4行3列
table = QTableWidget(4, 3, self)
table.setHorizontalHeaderLabels(['Name', 'Gender', 'Age'])
# 添加数据到表格中
items = [['Alice', 'Female', '23'], ['Bob', 'Male', '30'], ['Charlie', 'Male', '45'], ['David', 'Male', '50']]
for i, row in enumerate(items):
for j, col in enumerate(row):
item = QTableWidgetItem(col)
table.setItem(i, j, item)
# 设置单元格的背景色
if i % 2 == 0:
item.setBackground(QColor('#E6E6E6'))
else:
item.setBackground(QColor('#F2F2F2'))
vbox = QVBoxLayout()
vbox.addWidget(table)
self.setLayout(vbox)
self.setGeometry(300, 300, 350, 200)
self.setWindowTitle('QTableWidget')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
在上面的示例代码中,我们创建了一个4行3列的表格,并向其中添加数据。然后通过循环判断单元格所在的行数来设置单元格的背景色。具体来说,如果单元格所在的行数是偶数,就将其背景色设置为浅灰色;否则,将其背景色设置为白灰色。