【问题标题】:Get QTableView cell text after delegate委托后获取QTableView单元格文本
【发布时间】:2021-07-30 17:48:38
【问题描述】:

我使用QStyledItemDelegate类中的displaytext函数更改QTableView的一列文本。

QString Msg_NameGIdDelegate::displayText(const QVariant &value, const QLocale &locale) const
{
    return Diag_Utility::getMsgNameStr(value.toInt());
}

委托后如何获取此列中每个单元格的文本。如果我使用以下代码,我会在委托之前获得文本。

for(int i=0; i<ui->msgCount_tableView->model()->rowCount();i++)
    qDebug()<<ui->msgCount_tableView->model()->index(i,6).data().toString();

【问题讨论】:

    标签: c++ qt delegates qtableview


    【解决方案1】:

    看起来您更改了委托文本但未更改模型数据,并且您正在获取模型数据并且您想要委托数据。

    QAbstractItemDelegate *QAbstractItemView::itemDelegate(const QModelIndex &amp;index) 函数将返回您的委托,因此您可以获得displayText

    如果此解决方案不起作用,您可以通过 model()-&gt;setData(const QModelIndex &amp;index, const QVariant &amp;value, int role = Qt::EditRole)function 而不是委托的 displayText 更改模型的数据,您可以获取 model-&gt;data()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-06
      • 1970-01-01
      • 2017-09-28
      • 2022-07-05
      • 1970-01-01
      • 1970-01-01
      • 2021-05-19
      • 1970-01-01
      相关资源
      最近更新 更多