【问题标题】:How to set last column header to a fixed size and maintain it如何将最后一列标题设置为固定大小并保持它
【发布时间】:2014-09-29 18:32:32
【问题描述】:

下面的代码创建QTreeWidget 7(实际上是8)列。

我希望将最后一列 #7 用作分隔符。因此,当调整对话框大小时,第 6 列和 TreeWidget 的右边缘之间总是有一个填充(距离)。 由于默认情况下,最后一列及其标题会不断调整到无穷大。相反,我希望最后一列及其标题保持其固定大小,而第 6 列将调整大小。最后一列标题突然在 QTreewidget 的右边缘结束,它看起来确实很丑陋。如果将最后一个标题/列保持在固定大小不是一个选项,我想知道是否有任何其他方法可以实现相同的目的:保持最后一列的标题从 Tree List 小部件的右边缘填充。

这是默认外观:

这是我正在寻找的 Photoshop 版本:

from PyQt4 import QtCore, QtGui
app = QtGui.QApplication([])

class Tree(QtGui.QTreeWidget):
    def __init__(self, *args, **kwargs):
        super(Tree, self).__init__() 
        names=['Zero','One','Two','Three','Four','Five','Six','Seven']
        self.setColumnCount(len(names))
        self.setHeaderLabels(names)
        item=QtGui.QTreeWidgetItem(names)
        self.addTopLevelItem(item)
        self.setColumnWidth(7, 32)
        self.resize(720,120)
        self.show()
tree=Tree()
sys.exit(app.exec_())

【问题讨论】:

    标签: python pyqt


    【解决方案1】:

    好的,我有解决办法。首先,禁用拉伸最后一个部分并选择调整列大小。

    myQTreeWidget = QtGui.QTreeWidget()
    .
    .
    .
    myQHeaderView = myQTreeWidget.header()
    myQHeaderView.setStretchLastSection(False)
    myQHeaderView.setResizeMode(6, QtGui.QHeaderView.Stretch)
    

    QHeaderView.setResizeMode 方法参考http://pyqt.sourceforge.net/Docs/PyQt4/qheaderview.html#setResizeMode

    QHeaderView.setResizeMode 枚举参考http://pyqt.sourceforge.net/Docs/PyQt4/qheaderview.html#ResizeMode-enum


    实现你的代码;

    from PyQt4 import QtCore, QtGui
    app = QtGui.QApplication([])
    
    class Tree(QtGui.QTreeWidget):
        def __init__(self, *args, **kwargs):
            super(Tree, self).__init__() 
            names=['Zero','One','Two','Three','Four','Five','Six','Seven']
            self.setColumnCount(len(names))
            self.setHeaderLabels(names)
            item=QtGui.QTreeWidgetItem(names)
            self.addTopLevelItem(item)
            self.header().setStretchLastSection(False)
            self.header().setResizeMode(6, QtGui.QHeaderView.Stretch)
            self.resize(720,120)
            self.show()
    tree=Tree()
    sys.exit(app.exec_())
    

    问候,

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-21
      • 1970-01-01
      • 1970-01-01
      • 2015-03-31
      • 1970-01-01
      • 1970-01-01
      • 2018-02-05
      • 1970-01-01
      相关资源
      最近更新 更多