【发布时间】:2021-06-13 11:49:03
【问题描述】:
我有一个继承自 QTableWidget 的类,名为 InsnTable,其中一列包含整数数据...我想将整数显示为 32 位十六进制值。有没有简单的方法可以做到这一点?
我想将数据存储为QStrings 而不是int 并相应地将整数转换为十六进制......在我的情况下,问题在于我必须不断搜索该列中的值,所以我会必须将每个数据项转换回整数才能成功搜索...
那么有没有办法只将此列“查看”为十六进制值,但将它们定期存储为整数?
我插入整数数据如下:
void InsnTable::insertInsn(const InsnEntry &insn)
{
this->insertRow(this->rowCount());
QTableWidgetItem *addrValue = new QTableWidgetItem();
uint64_t addr = insn.addr();
addrValue->setData(Qt::EditRole, QVariant::fromValue(addr));
this->setItem(this->rowCount() - 1, 0, addrValue);
}
【问题讨论】:
-
要么为 Qt::DislayRole 设置一个 QString,要么从 QTableWidgetItem 派生并返回所需的数据值(Qt::DislayRole),或者使用自定义项委托。
标签: c++ qt qtablewidget qtablewidgetitem