PyQt5中QTableWidget设置列宽大小的几种方式

我们在使用QTableWidget的时候,经常会出现列宽大小和我们想象不一致的情况,如下图:
在这里插入图片描述
内容不能完全显示,需要手动调整列宽才能显示完全。

还有如下图:
在这里插入图片描述
因此需要我们擅于调整列宽为我们所使用,现将列宽调整总结如下(行宽请参考):

列宽自动分配

self.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
# self.tableWidget.verticalHeader().setSectionResizeMode(QHeaderView.Stretch)

效果如下:
在这里插入图片描述
此种模式下,我们没法手动调整列宽。

手动调整

self.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Interactive)

效果如下:
在这里插入图片描述
使用Qt设计师编译后生成的代码就是这种的。

固定值

self.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Fixed)

效果如下:
在这里插入图片描述
用户无法调整该部分的大小。该部分只能使用resizeSection()以编程方式调整大小。节大小默认为defaultSectionSize。

self.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
self.tableWidget.horizontalHeader().setSectionResizeMode(0, QHeaderView.ResizeToContents)

我们把它和列宽自动分配结合在一起看,效果立马显现。

效果如下:
在这里插入图片描述
上面两种方式结合

self.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
self.tableWidget.horizontalHeader().setSectionResizeMode(0, QHeaderView.Interactive)

效果如下:
在这里插入图片描述
看到没有,列宽是自动分配的,但是第一列我们可以手动调整宽度,而表格整体的列宽仍是自动分配的。第二、三列我们没有办法调整列宽,这个是自动分配的。

自定义列宽

self.tableWidget.setColumnWidth(0, 40)
self.tableWidget.setColumnWidth(1, 200)
self.tableWidget.setColumnWidth(2, 200)

效果如下:
在这里插入图片描述

  • 15
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值