如何获取QTableView的标题列表?

9

我在对话框中有一个 QTableView 对象。

我需要访问此表的水平标题并将其放入 QStringList 对象中。

尽管进行了全面的搜索,但我仍然无法在Qt文档中找到如何获取这些标题列表的方法。

编辑:我在任何地方都找不到更接近的内容,这个网址提到了 QTableWidget,而使用的函数对于 QTableView 不可用。不幸的是,我不能自由切换问题对象为表格小部件。

2个回答

21

所以,我能想到的唯一方法就是像这样做:

QStringList headers;
for(int i = 0; i < myTableView->model()->columnCount(); i++)
{
  headers.append(myTableView->model()->headerData(i, Qt::Horizontal).toString());
}

老实说,这种方法似乎仍然比应该的要复杂得多,但至少它能够正常工作。

9
我认为"比它应该的更加复杂"是Qt的ItemView类的官方座右铭 ;) - Jeremy Friesner
1
@JeremyFriesner 哈哈,我有同感,ListView不太难,但TableView太痛苦了,更别提TreeView了。 - thnkwthprtls

2
你可以稍微简化一下,像这样。这是Python版本。
items = []
for x in range(tbl.columnCount()):
    items.append(tbl.horizontalHeaderItem(x).text())

我必须在C++中使用tbl.horizontalHeaderItem(x)->text()。 - FumbleFingers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接