你需要设置
item的背景颜色。有几种方法可以做到这一点(完整脚本在下面):
在此示例中,我们将item1
设置为内容为“row1”。如果这是偶数行,则将背景设置为浅红/粉色。
item1 = QtGui.QTableWidgetItem('row1')
if row % 2 == 0:
item1.setBackground(QtGui.QColor(255, 128, 128))
self.table.setItem(row,0,item1)
- 选项2:在表格中已有的项目上设置背景。这要求你直接对该项目进行操作。
在这个例子中,我们将背景设置为浅灰色,应用于第1行第0列的项目:
self.table.item(1,0).setBackground(QtGui.QColor(125,125,125))
这里有一份完整的脚本,展示了红色和灰色高亮:
from PyQt4 import QtCore
from PyQt4 import QtGui
import sys
class MainWindow(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self,parent)
self.table = QtGui.QTableWidget()
self.table.setColumnCount(2)
self.setCentralWidget(self.table)
data1 = ['row1','row2','row3','row4']
data2 = ['1','2.0','3.00000001','3.9999999']
self.table.setRowCount(4)
for row in range(4):
item1 = QtGui.QTableWidgetItem(data1[row])
if row % 2 == 0:
item1.setBackground(QtGui.QColor(255, 128, 128))
self.table.setItem(row,0,item1)
self.table.item(1,0).setBackground(QtGui.QColor(125,125,125))
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
输出:
![示例输出展示了两种突出背景的方法](https://istack.dev59.com/LrQum.webp)
self.myTable.myItem1.background().setColor(QtGui.QColor(255,100,0,255))
的效果如何? - mdurantfont=QtGui.QFont(self)
font.setBold(True)
self.myTable.myItem1.setFont(font)
它可以工作。(但这不是我想要的) - Olivier GiniauxQTableWidgetItem
上色,所以我想在我的项上使用类似setObjectName
的东西,并在我的样式表中为此名称分配特殊样式,但是QTableWidgetItem
没有setObjectName
。对于setStyleSheet
也是同样的情况。 - Olivier Giniauxbackground()
返回值为QBrush
,因此修改它没有任何效果。 - Pavel Strakhov