在 QHeaderView 中获取 header 部分文本
Get header section text in QHeaderView
我在 QTableWidget 中对 QHeaderView 进行子类化,以便为 hiding/showing 部分提供自定义功能。有没有办法从 header 视图中获取部分的文本?我知道我可以在 table 的范围内做到这一点,但这不是我想要做的。
我意识到数据存储在模型内部,但是下面的测试只是 returns "None":
self.model().index(0,0).data()
您可以使用分配给 QHeaderView
and get the text using the 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_())
我在 QTableWidget 中对 QHeaderView 进行子类化,以便为 hiding/showing 部分提供自定义功能。有没有办法从 header 视图中获取部分的文本?我知道我可以在 table 的范围内做到这一点,但这不是我想要做的。
我意识到数据存储在模型内部,但是下面的测试只是 returns "None":
self.model().index(0,0).data()
您可以使用分配给 QHeaderView
and get the text using the 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_())