PyQt:如何为单个标题设置不同的标题大小?

Posted

技术标签:

【中文标题】PyQt:如何为单个标题设置不同的标题大小?【英文标题】:PyQt:How do i set different header sizes for individual headers? 【发布时间】:2012-01-24 01:59:38 【问题描述】:

我有一个包含两个项目的列表,一个单词和一个数字。这个列表将使用 tablewidget 呈现。

我的目标是生成一个包含两列和必要行的表格,但是包含单词的列的标题应该大于数字列。

我可以根据内容调整列的大小,但我希望在调整大小后表格周围没有白色空白区域。

我使用 QtDesigner 创建 gui 代码。谢谢。

【问题讨论】:

【参考方案1】:

QHeaderView 类的一些方法可能会满足您的需求。最简单的是:

table.horizontalHeader().setStretchLastSection(True)

这将确保最后一列的大小自动调整以适应表格中的可用空间,而其他列的宽度保持不变(并由用户调整大小)。

另外,还有一些方法可以设置列的ResizeMode

对于 Qt5:

table.setColumnWidth(1, 80)
table.horizontalHeader().setSectionResizeMode(0, QHeaderView.Stretch)

对于 Qt4:

table.setColumnWidth(1, 80)
table.horizontalHeader().setResizeMode(0, QHeaderView.Stretch)

这将固定第二列的宽度,并确保自动调整第一列的大小以填充剩余空间(但防止用户进行任何其他调整大小)。

【讨论】:

有没有办法使用 Qt Desginer 来实现?有选择吗? 设计器中没有ResizeMode 的选项,但setStretchLastSection 有选项(即属性编辑器中的Header/horizontalHeaderStrechLastSection)。【参考方案2】:

对此的最佳解决方案,在Qt5 中,您必须使用setSectionResizeMode 而不是setResizeMode

tabv = QTableView()
tabv.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)

tabv.horizontalHeader().setSectionResizeMode(1)

【讨论】:

以上是关于PyQt:如何为单个标题设置不同的标题大小?的主要内容,如果未能解决你的问题,请参考以下文章

PyQt5 - 如何为相同的元素设置不同的样式表?

如何为不同的屏幕设置自动大小文本

CSS:如何为每种字体设置不同的大小

如何为Android中的不同布局设置链中按钮的大小

如何为 UITableViewCell 的 ImageView 设置固定大小?

如何为内容不断被替换的段落设置字体大小