我正在尝试更改QTableWidgetItem
. 还有一些关于同一件事的其他帖子,但没有一个给定的解决方案对我有用。
对于每一行,我QTableWidgetItems
一一创建,然后使用 setItem 将其分配给当前行的单元格。
我尝试在创建它们后立即更改颜色:
self.myTable.myItem1.setBackgroundColor(QtGui.QColor(255,100,0,255))
self.myTable.myItem1.setBackground(QtGui.QColor(255,100,0,255))
self.myTable.myItem1.setData(Qt.BackgroundRole,QtGui.QColor(255,100,0,255))
但是这些解决方案在我的情况下没有任何作用。有什么我想念的吗?
欢迎任何帮助
你要设置的背景颜色项目。有几种方法可以做到这一点(完整脚本进一步向下):
在本例中,我们将item1
“row1”设置为内容。如果这是偶数行,我们将背景设置为浅红色/粉红色。
item1 = QtGui.QTableWidgetItem('row1')
if row % 2 == 0:
item1.setBackground(QtGui.QColor(255, 128, 128))
self.table.setItem(row,0,item1)
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我们将项目的背景设置为浅灰色,第 1 行,第 0 列:
self.table.item(1,0).setBackground(QtGui.QColor(125,125,125))
Run Code Online (Sandbox Code Playgroud)
显示红色和灰色突出显示的完整脚本在这里:
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_())
Run Code Online (Sandbox Code Playgroud)
输出:
归档时间: |
|
查看次数: |
11645 次 |
最近记录: |