如何获取 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 的列中显示下拉列表并根据下拉列表进行过滤

如何在 QTableView 中获取选定的行

QTableView 获取具有相似列值/数据的行列表

如何从 QTableView 获取活动/选定的 QRadioButton

QT - 如何从 QTableView 中的单行获取值