• 6303阅读
  • 9回复

请问QTableWidget 表头以十六进制显示索引怎么做? [复制链接]

上一主题 下一主题
离线killall
 
只看楼主 倒序阅读 楼主  发表于: 2008-11-20
— 本帖被 XChinux 执行加亮操作(2008-11-30) —
各位大虾
请问QTableWidget 表头以十六进制显示索引怎么做?
离线killall
只看该作者 1楼 发表于: 2008-11-20
我有人顶啊,我自己来。
离线water_wf

只看该作者 2楼 发表于: 2008-11-20
无论显示什么不都是字符串吗
离线killall
只看该作者 3楼 发表于: 2008-11-20
我想让他自动变成01,02........0A,0B而不是01,02........10,11
并且不需要用for循环去设置每一个headeritem.
离线water_wf

只看该作者 4楼 发表于: 2008-11-20
我觉得那是必须的去设置的
离线vrcats
只看该作者 5楼 发表于: 2008-11-20
循环是一定要的。数字可以用.arg(...)转为16进制字符串

QString("%1").arg(i, 0, 16);
离线killall
只看该作者 6楼 发表于: 2008-11-21
谢谢各位大虾,我用下面的代码实现了。
QString str;
for(i=0;i<16;i++){
tableWidget.setRowHeight(i,25);
str=QString("%1").arg(i,2,16,QLatin1Char('0')).toUpper();
tableWidget.setHorizontalHeaderItem(i,new QTableWidgetItem(str));   
}

请问一下这里“str=QString("%1").arg(i,2,16,QLatin1Char('0')).toUpper();”这一行,没有用new来分配内存会不会有问题,另外可不可以不用定义str这个QString。
谢谢大家了。
离线lazybone
只看该作者 7楼 发表于: 2008-11-21
我用的版本里没QString ,估计是静态的不用考虑销毁之类的
不定义Str ?
tableWidget.setHorizontalHeaderItem(i,new QTableWidgetItem(QString("%1").arg(i,2,16,QLatin1Char('0')).toUpper()));
?这个意思? 可以啊
离线vrcats
只看该作者 8楼 发表于: 2008-11-21
可以不定义的。调用tableWidget.setHorizontalHeaderItem(i,new QTableWidgetItem(str))的时候,会自动创建一个QString实例,然后把str的值拷贝过去。str在退出函数时自动被析构。
离线killall
只看该作者 9楼 发表于: 2008-11-21
昨天我是用:
tableWidget.setHorizontalHeaderItem(i,new QTableWidgetItem(new (QString("%1").arg(i,2,16,QLatin1Char('0')).toUpper())));
这样的代码来做的,发现编译的时候始终要报错。
谢谢大家了!!!!
快速回复
限100 字节
 
上一个 下一个