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)

    效果如下:

  • 相关阅读:
    Kotlin扩展深入解析及注意事项和可见性
    Kotlin属性揭秘与延迟初始化特性
    Kotlin伴生对象及其字节码内幕详解
    Kotlin继承与重写重要特性剖析
    Kotlin构造方法详解与初始化过程分析
    Range与面向对象的Kotlin
    Kotlin编译器优化与when关键字详解
    Kotlin基础特性深入讲解
    java读取mysql表的注释及字段注释
    mysql导入导出sql文件
  • 原文地址:https://www.cnblogs.com/liugp/p/10509123.html
Copyright © 2011-2022 走看看