• 4061阅读
  • 3回复

Model 中的某一列是 int 型,但是在 view 中要显示它的二进制或者十六进制值 [复制链接]

上一主题 下一主题
离线napier
 

只看楼主 倒序阅读 楼主  发表于: 2011-09-26
不想在 model 中把 int 转换为字符串,因为还要使用 filter proxy model 限定 int 的范围来进行过滤,换成字符串会明显降低效率。

这时一定要用自定义的 delegate 来把 int 变成字符串,然后用 painter->drawText() 绘制在 view 中么?有没有简便的办法?
离线XChinux

只看该作者 1楼 发表于: 2011-09-26
不需要吧。因为model的data()方法要求返回的是一个QVariant类型的数据。
QVariant(intValue)也可以啊。

将Qt::EditRole和Qt::DisplayRole设置不同的值。

二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线napier

只看该作者 2楼 发表于: 2011-09-27
返回一个 int 是可以啊,但是显示的是十进制形式,想要的是二进制或者十六进制。。。
离线napier

只看该作者 3楼 发表于: 2011-10-01
最后我还是在 model 中加了一列,内容是 int 转化成的 QString,然后把 int 那一列在 view 中设成隐藏,但 filter model 过滤的还是 int 那一列。。。空间换时间了
快速回复
限100 字节
 
上一个 下一个