python - 在 QHeaderView 中获取标题部分文本
问题描述
我在 QTableWidget 中对 QHeaderView 进行子类化,以提供用于隐藏/显示部分的自定义功能。有没有办法从标题视图中获取部分的文本?我知道我可以在表格的范围内做到这一点,但这不是我想要做的。
我意识到数据内部存储在模型中,但是以下测试只返回“无”:
self.model().index(0,0).data()
解决方案
您可以使用分配给的模型QHeaderView
并使用以下方法获取文本headerData()
:
from PyQt5 import QtCore, QtGui, QtWidgets
class HeaderView(QtWidgets.QHeaderView):
def text(self, section):
if isinstance(self.model(), QtCore.QAbstractItemModel):
return self.model().headerData(section, self.orientation())
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
w = QtWidgets.QTableWidget(10, 4)
w.setHorizontalHeaderLabels(
["section-{}".format(i) for i in range(w.columnCount())]
)
horizontal_headerview = HeaderView(QtCore.Qt.Horizontal, w)
w.setHorizontalHeader(horizontal_headerview)
print(horizontal_headerview.text(1))
vertical_headerview = HeaderView(QtCore.Qt.Vertical, w)
w.setVerticalHeader(vertical_headerview)
print(vertical_headerview.text(2))
w.show()
sys.exit(app.exec_())
推荐阅读
- gradle - 每次运行构建时如何阻止gradle重新下载
- javascript - Puppeteer 不评估 heroku 上的网络应用程序
- html - 如何使用 Notepad++ 中的正则表达式从多个页面中删除 HTML 代码
- django - Django: as_view: cls 和 initkwargs 如何传递给视图函数
- jsx - 如何在 JSX 中循环的每次迭代都渲染一些东西?
- r - 我图例上的形状似乎与情节 ggplot2 中显示的顺序不同
- vba - 使用 VBA 计划任务检查数字签名是否仍然有效
- javascript - 无法让 NextJS ConfettiExplosion 工作:无效的挂钩调用
- amazon-s3 - 通过 API 网关上传文件的架构
- database - 3 个单独的表格或 1 个带有额外列的表格?