zoukankan      html  css  js  c++  java
  • 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)

    效果如下:

  • 相关阅读:
    vue-cli-service: command not found
    parted 大容量硬盘分区 格式化
    RAC集群安装错误集合
    印象笔记 Windows 客户端“未响应”怎么办?
    split,splice,slice 三者的用法
    JQuery 2.0.3 源码结构
    数据库字段备注信息声明语法 CDL (Comment Declaration Language)
    mysql底层原理解析(一)之日志
    ES底层原理解析
    aspnetCore 3.1网站部署到IIS
  • 原文地址:https://www.cnblogs.com/liugp/p/10509123.html
Copyright © 2011-2022 走看看