c++ - 委托后获取 QTableView 单元格文本
问题描述
displaytext
我通过使用类中的函数来更改 QTableView 列的文本QStyledItemDelegate
。
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();
解决方案
看起来您更改了委托文本但未更改模型数据,并且您正在获取模型数据并且您想要委托数据。
QAbstractItemDelegate *QAbstractItemView::itemDelegate(const QModelIndex &index)
函数将返回您的委托,以便您获得displayText
.
如果此解决方案不起作用,您可以通过model()->setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole)
函数而不是委托更改模型的数据displayText
,您可以获取model->data()
推荐阅读
- r - R中条形图中的文本
- laravel - laravel如何根据自定义数据库查询添加验证规则
- python - Pandas:如何总结 pandas 交叉表/频率矩阵
- java - 循环内输入的时间限制
- javascript - Vue.js - 如果模型拒绝更改,则恢复输入值
- powershell - PowerShell 点击表单提交 URL 不正确
- sql - 将 SQL 选择语句与 ASM 磁盘组的 in 运算符连接起来
- arrays - 删除元素后,子组件无法从其父组件获取数组。
- objective-c - 使用内存重新绑定在 Swift 中的不兼容类型之间进行桥接
- c# - 无法从剪贴板获取文本 | C#