c++ - 有没有办法将 QTableWidget 中的整数数据显示为十六进制?
问题描述
我有一个继承自QTableWidget
被调用的类,InsnTable
并且它的一个列具有整数数据...我想将整数显示为 32 位十六进制值。有没有简单的方法可以做到这一点?我想将数据存储为QString
s 而不是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);
}
解决方案
当然:
你可以在你做的部分:
QVariant::fromValue(addr)
给出一个十六进制格式的字符串,你需要这样的东西来将一个数字转换成一个十六进制 QString
uint decimal = 255;
QString hexadecimal{};
hexadecimal.setNum(decimal,16);
最后代码看起来像:
void InsnTable::insertInsn(const InsnEntry &insn)
{
this->insertRow(this->rowCount());
QTableWidgetItem *addrValue = new QTableWidgetItem();
uint64_t addr = insn.addr();
QString hexadecimal{};
hexadecimal.setNum(decimal,16);
addrValue->setData(Qt::EditRole, QVariant::fromValue(hexadecimal));
this->setItem(this->rowCount() - 1, 0, addrValue);
}
推荐阅读
- bash - 将文件名的第一部分提取到bash中的模式
- python - Python 错误 - 无法构建用于安装 QuTiP 的轮子
- python - 基于列 value_python 的 df 中的垂直连接
- c - 如果目录不存在,POSIX 系统有没有办法自动创建目录?
- java - 给定素数和指数,生成小于 N 的所有可能整数
- docker - 以 docker-compose up 启动的服务之一不会以 docker-compose stop 停止
- linux - 使用源 .bashrc 后别名未更新
- python - 调整 ConfusionMatrixDisplay 的大小(ScikitLearn)
- linux - 在 Windows 主机上的 Linux 客户机中创建符号链接
- postgresql - 您可以使用 AWS DMS 将 Aurora DB 从一个账户移动到另一个账户吗?