You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在点击QAbstractTableModel单元格时获取对应列的表头文本?

通过列号获取QAbstractTableModel的表头文本

当然可以,你可以直接使用QAbstractTableModel提供的headerData()方法,通过列号获取对应列的表头文本。

修改你的setData函数,加入获取表头的逻辑即可:

bool TableModel::setData(const QModelIndex &index, const QVariant &val, int role) {
    if (role == Qt::EditRole) {
        auto cellText = index.data(Qt::DisplayRole).toString();
        std::cout << "row number: " << index.row() << " col number: " << index.column() << std::endl;
        std::cout << "indexText: " << cellText.toStdString() << std::endl;

        // 获取当前列的表头文本
        int column = index.column();
        QString headerText = this->headerData(column, Qt::Horizontal, Qt::DisplayRole).toString();
        std::cout << "column header: " << headerText.toStdString() << std::endl;
    }
    return QAbstractTableModel::setData(index, val, role);
}

关键说明:

  • headerData()的第一个参数传入目标列号;
  • 第二个参数指定为Qt::Horizontal,表示获取列方向的表头(行表头则传Qt::Vertical);
  • 第三个参数用Qt::DisplayRole就能获取表头的显示文本,如需其他样式或数据可更换对应角色。

比如点击示例中的b2单元格(列号为1),这段代码会输出对应的表头文本Column B。

内容的提问来源于stack exchange,提问作者BadRobot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 16:32:11