PyQt4 代码在 PyQt5 (QHeaderView) 上不起作用

Posted

技术标签:

【中文标题】PyQt4 代码在 PyQt5 (QHeaderView) 上不起作用【英文标题】:PyQt4 code not working on PyQt5 (QHeaderView) 【发布时间】:2014-10-01 12:16:41 【问题描述】:

我使用的是 PyQt4,这段代码运行良好。

self.table.horizontalHeader().setResizeMode(1, QHeaderView.Stretch)

它正在拉伸表格中的一列。 但是当我用 PyQt5 运行代码时,我得到了这个错误:

Attribute Error: 'QHeaderView' object has no attribute 'setResizeMode'

你能帮忙吗?或者简单地说;如何在 PyQt5 中调整任何列?

【问题讨论】:

【参考方案1】:

使用QHeaderView.setSectionResizeMode 代替QHeaderView.setResizeMode:

改用 setSectionResizeMode。

(引用自 QHeaderView.setResizeMode 的文档)

【讨论】:

【参考方案2】:

在 PyQt5 中应该是:

header = self.table.horizontalHeader()       
header.setSectionResizeMode(0, QtWidgets.QHeaderView.Stretch)
header.setSectionResizeMode(1, QtWidgets.QHeaderView.ResizeToContents)
header.setSectionResizeMode(2, QtWidgets.QHeaderView.ResizeToContents)

【讨论】:

以上是关于PyQt4 代码在 PyQt5 (QHeaderView) 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章

PyQt4 到 PyQt5 怎么样?

将 PyQt4 代码适配到 PyQt5,SIGNAL 问题

PyQt 5.4参考指南 ---- PyQt5和PyQt4之间的差异

PyQt4 和 PyQt5 中的 QFileDialog 字符串有区别吗?

在一个应用程序中同时支持 PyQt4 和 PyQt5 的常用方法是啥?

PyQt5 接收器