• 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)

    效果如下:

  • 相关阅读:
    02.两数相加
    1480. 一维数组的动态和
    01. 两数之和
    67.二进制求和
    文献阅读(QoS-Aware Web Service Recommendation by Collaborative Filtering)
    服务计算---课程总结报告
    125. 验证回文串
    Docker 常用命令
    Docker 安装
    RESTful
  • 原文地址:https://www.cnblogs.com/liugp/p/10509123.html
Copyright © 2020-2023  润新知