PyQT中QTableWidget如何根据单元格内容设置自动宽度
QTableWidget根据单元格内容设置自动宽度
比如当前有一个表格对象ws1, 现在向表格中添加内容:
list = ['故人西辞黄鹤楼, 烟花三月下扬州', '忽如一夜春风来, 千树万树梨花开'] for i in lsit : ws1. setItem(0, list.index(i), QTablewidgetItem(i))
执行后显示为:
如果需要将内容显示完整, 需要在代码后加上:
for i in lsit : ws1. setItem(0, list.index(i), QTablewidgetItem(i)) ws1.resizeColumnsToContents()
这样整个工作表都将自动为单元格内容自动设置宽度:
如果你只需要设置某一列为自动宽度, 则只需要修改参数:
for i in lsit : ws1. setItem(0, list.index(i), QTablewidgetItem(i)) ws1.resizeColumnToContents(0)
则只有第一列会自动设置宽度:
另外还有以下用法:
resizeRowsToContents() resizeRowToContents(int)
可根据实际情况使用
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)
效果如下:
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
python如何实现lazy segment tree惰性段树算法
LazySegmentTree(惰性段树)算法是一种数据结构,专门用于高效处理区间查询和更新操作,它利用延迟更新技术(LazyPropagation),仅在必要时执行实际更新,以提升效率,此结构将数组表达为二叉树,每个节点表示一个数组区间2024-10-10为Python的Tornado框架配置使用Jinja2模板引擎的方法
Jinja2是人气Web框架Flask中的内置模板引擎,而且与Django的模板引擎比较类似,这里我们就来看一下为Python的Tornado框架配置使用Jinja2模板引擎的方法2016-06-06
最新评论