首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何仅在TableWidget的列设置backgroundColor?

在TableWidget中,要仅设置某一列的背景颜色,可以通过自定义代理来实现。以下是实现的步骤:

  1. 创建一个自定义代理类,继承自QStyledItemDelegate。
  2. 重写paint()方法,在该方法中根据需要设置列的背景颜色。
  3. 在TableWidget中设置该代理类为特定列的代理。

下面是一个示例代码:

代码语言:txt
复制
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem, QStyledItemDelegate
from PyQt5.QtGui import QColor, QPainter

class ColumnColorDelegate(QStyledItemDelegate):
    def paint(self, painter, option, index):
        # 获取当前单元格的行和列
        row = index.row()
        column = index.column()
        
        # 设置第2列的背景颜色为红色
        if column == 1:
            painter.fillRect(option.rect, QColor(255, 0, 0))
        
        # 绘制文本
        self.drawDisplay(painter, option, option.rect, index.data())

app = QApplication([])
tableWidget = QTableWidget(4, 3)
tableWidget.setItemDelegateForColumn(1, ColumnColorDelegate())

# 添加数据
tableWidget.setItem(0, 0, QTableWidgetItem("A"))
tableWidget.setItem(0, 1, QTableWidgetItem("B"))
tableWidget.setItem(0, 2, QTableWidgetItem("C"))
tableWidget.setItem(1, 0, QTableWidgetItem("D"))
tableWidget.setItem(1, 1, QTableWidgetItem("E"))
tableWidget.setItem(1, 2, QTableWidgetItem("F"))
tableWidget.setItem(2, 0, QTableWidgetItem("G"))
tableWidget.setItem(2, 1, QTableWidgetItem("H"))
tableWidget.setItem(2, 2, QTableWidgetItem("I"))
tableWidget.setItem(3, 0, QTableWidgetItem("J"))
tableWidget.setItem(3, 1, QTableWidgetItem("K"))
tableWidget.setItem(3, 2, QTableWidgetItem("L"))

tableWidget.show()
app.exec_()

在上述代码中,我们创建了一个自定义代理类ColumnColorDelegate,并重写了paint()方法。在paint()方法中,我们判断当前单元格的列是否为第2列,如果是,则使用fillRect()方法设置背景颜色为红色。

然后,我们通过setItemDelegateForColumn()方法将该代理类应用到TableWidget的第2列。

最后,我们添加了一些数据到TableWidget中,并显示出来。

这样,TableWidget中的第2列的背景颜色就会被设置为红色。

请注意,这只是一个示例,你可以根据实际需求进行修改和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

QTableView表格视图设置

那么,QTableWidget便是一个不错选择。这篇博文主要记录表格宽和行高设置。 方法一:       恰当设置表格宽往往能给表格美观性带来较好效果。...方法二:       注意到QTableView类还有一个成员方法:setColumnWidth(),显然是用来设置表格。但是,这里有个要求。...所有对setColumnWidth()调用都要放在setModel()之后。如果在设置View类Model之前就调用该方法来设置宽,是不会起作用。...setColumnWidth()效果:每一宽度都是一样,没有区别对待。...在Model设置好之后调用setColumnWidth()效果:第一内容一般较长,所以更宽,其他则更窄。 ?

7.7K121

如何通过命令调整GPU云服务器VNC多显示器设置仅在1上显示

文档结尾有介绍不自建vncserver设置仅在1上显示,使Windows GPU机器控制台vnc能使用办法 仅在2就是独显、仅在1就是非独显,记住这点就够用了 验证步骤: 1、用2019grid公共镜像买台...如果控制台vnc里鼠标不同步,也是按【桌面右键 → 显示设置 → 扩展这些显示器 → 仅在1上显示】来设置。...:\Windows\目录下 然后在vnc会话里如下命令就可以设置了 注意,必须在vnc会话里操作,rdp会话里不行 GPU机器显示设置有4种区别,仅①和③两种情况,控制台vnc才能用: ①仅在1上显示...②仅在2上显示 ③扩展显示1为主 ④扩展显示2为主 如何通过命令调整GPU云服务器VNC多显示器设置仅在1上显示?...大致思路就是: 设置自动登录,使控制台vnc自动登录进去执行开机计划任务调用MultiMonitorTool.exe设置仅在1上显示 MultiMonitorTool.exe 从其官网下载: https

92010

python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性

) 设置单元格行宽度 setRowHeight(int row,int height) 设置单元格高度 编辑规则枚举值类型 方法 描述 setROwCount(int row) 设置QTableWidget...,四行三,所以要灵活运用函数,这里只是示范一下如何单独设置行列 TableWidget=QTableWidget(4,3) # TableWidget = QTableWidget(...升序 #tableWidget.sortItems(2,Qt.DescendingOrder) #合并单元格 #tableWidget.setSpan(2,0,4,1) #设置单元格大小 #将第一单元宽度设置为...优化5:合并单元格 将表格中第一行第一单元格,更改为占据5行1 #合并单元格 tableWidget.setSpan(2,0,5,1) ?...优化6:设置单元格大小 这里将第一行宽度设置为150,高度设置为120 #将第一单元宽度设置为150 tableWidget.setColumnWidth(0,150) #将第一行单元格高度设置

9.3K24

PyQt5高级界面控件之QTableWidget(四)

,四行三,所以要灵活运用函数,这里只是示范一下如何单独设置行列 TableWidget=QTableWidget(4,3) # TableWidget = QTableWidget...#TODO 优化 5 将行与高度设置为所显示内容宽度高度匹配 #QTableWidget.resizeColumnsToContents(TableWidget...) #合并单元格 #tableWidget.setSpan(2,0,4,1) #设置单元格大小 #将第一单元宽度设置为150...(2, 2, newItem) 优化5:合并单元格 将表格中第一行第一单元格,更改为占据5行1 #合并单元格 tableWidget.setSpan(2,0,5,1) 优化6:设置单元格大小...这里将第一行宽度设置为150,高度设置为120 #将第一单元宽度设置为150 tableWidget.setColumnWidth(0,150) #将第一行单元格高度设置为120 tableWidget.setRowHeight

3.7K10

C++ Qt开发:TableWidget表格组件

item(int row, int column) const 返回指定行和项 setRowCount(int rows) 设置表格行数 setColumnCount(int columns) 设置表格数...首先我们准备好UI界面部分,该界面包含元素较为复杂,如果找不到这些组件可以参考文章底部完整案例代码; 1.1 设置初始表格 如下代码演示了如何使用 QTableWidget 设置表头。...headerText_Row.count()); // 设置为与headerText_Row相等 for (int i=0;itableWidget->columnCount...(i,headerItem); // 设置表头单元格Item } } 如下代码演示了如何从 QSpinBox 中读取数量,并将其设置为 QTableWidget 表格行数。...逐处理数据: 使用内部循环 for (int j=0; jtableWidget->columnCount()-1; j++) 处理每一数据,最后一是党员状态,需要单独处理。

49010

Python Qt GUI设计:QTableView、QListView、QListWidet、QTableWidget、QTreeWidget和QTreeWidgetltem表格和树类(提升篇—1)

1、QTableView类 2、QListView类 3、QListWidet类 4、QTableWidget类 5、QTreeWidget和QTreeWidgetltem类 ---- 表格与树解决问题是如何在一个控件中有规律地呈现更多数据...通过示例了解QTableWidget类使用方法,效果如下所示: 示例中, 构造了一个QTableWidget对象,并且设置表格为4行3。...# 将表格变为禁止编辑 #tableWidget.setEditTriggers(QAbstractItemView.NoEditTriggers) # 设置表格为整行选择 #tableWidget.setSelectionBehavior...( QAbstractItemView.SelectRows) # 将行和大小设为与内容相匹配 #tableWidget.resizeColumnsToContents() #tableWidget.resizeRowsToContents...self.updateTreeNodeBtn ) delBtn.clicked.connect(self.delTreeNodeBtn ) self.tree = QTreeWidget(self) # 设置

3K20

根据数据源字段动态设置报表中数量以及宽度

在报表系统中,我们通常会有这样需求,就是由用户来决定报表中需要显示数据,比如数据源中共有八数据,用户可以自己选择在报表中显示哪些,并且能够自动调整列宽度,已铺满整个页面。...本文就讲解一下ActiveReports中该功能实现方法。 第一步:设计包含所有报表模板,将数据源中所有先放置到报表设计界面,并设置你需要宽,最终界面如下: ?...if (tmp == null) { // 设置需要显示第一坐标 headers[c...c].Location.X, cols[c].Location.Y); } else { // 设置需要显示非第一坐标...源码下载: 动态设置报表中数量以及宽度

4.8K100

如何生成A-AZ excel表 不用序号那种?

千里共如何,微风吹兰杜。 大家好,我是皮皮。 一、前言 前几天在Python最强王者交流群【逸】问了一个Pyhton处理Excel问题,这里拿出来给大家分享下。...二、实现过程 针对这个问题,一开始我想到就是字符串拼接,后来在网上查了下,原来真的有现成代码,不然挨个自己手写,真的不一定写得出来,这里拿出来给大家一起分享。...: 没想到这个代码还是蛮实用: 原文链接:https://blog.csdn.net/u013595395/article/details/116603463 三、总结 大家好,我是皮皮。...这篇文章主要盘点了一个Pyhton处理Excel问题,文中针对该问题,给出了具体解析和代码实现,帮助粉丝顺利解决了问题。...最后感谢粉丝【逸】提问,感谢【Eric】给出思路和代码解析,感谢【群除我佬】等人参与学习交流。

1.7K20
领券