如何获取 QTableView 的标题列表?
Posted
技术标签:
【中文标题】如何获取 QTableView 的标题列表?【英文标题】:How to get list of headers of a QTableView? 【发布时间】:2014-04-08 18:01:17 【问题描述】:我的对话框中有一个QTableView
对象。
我需要访问该表的水平标题并将它们放入QStringList
对象中。
尽管进行了大量搜索,但我在 Qt 文档中找不到如何获取此标头列表。
编辑:我在任何地方找到的最接近的是this,但它正在处理QTableWidget
,并且使用的函数不适用于QTableView
。不幸的是,我无权将相关对象切换为表格小部件。
【问题讨论】:
【参考方案1】:所以,我能想出这样做的唯一方法是:
QStringList headers;
for(int i = 0; i < myTableView->model()->columnCount(); i++)
headers.append(myTableView->model()->headerData(i, Qt::Horizontal).toString());
老实说,这似乎仍然比它应该的要复杂得多,但至少它有效。
【讨论】:
我认为“比它应该的要复杂得多”是 Qt 的 ItemView 类的官方座右铭;) @JeremyFriesner 哈哈我也有同样的感觉,ListView 还不错,但是 TableView 太痛苦了,和 TreeView 相比,这算不了什么【参考方案2】:你可以稍微简化一下,像这样。这是python的变种
items = []
for x in range(tbl.columnCount()):
items.append(tbl.horizontalHeaderItem(x).text())
【讨论】:
以上是关于如何获取 QTableView 的标题列表?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用qstandarditemmodel获取qtableview中的数据
如何在 QTableView 的列中显示下拉列表并根据下拉列表进行过滤