• 6176阅读
  • 0回复

[提问]QtreeWidget 如何遍历(Qmap) [复制链接]

上一主题 下一主题
离线aishang
 
只看楼主 倒序阅读 楼主  发表于: 2011-02-21
       小弟做的是串口通信,利用treewidget结构显示数据。每秒收到一组数据。数据包括id和信号强度
       现在的问题是,我下一次收到的数据里存在和上一次收到数据里面相同的id号,所以我得利用遍历查找到相同的id,并且将新的信号强度跟新。请教了别人,说可以用Qhash和Qmap进行遍历查找。可一直没搞通!附上代码!
void Thread::dispose(QByteArray Tag_data)
{
int number;
number = Tag_data.at(4);
int i;
QTreeWidgetItem *Tag_N1;
//QMap<QByteArray,QTreeWidgetItem *> map;//定义了全局的
QMapIterator<QByteArray,QTreeWidgetItem *> iterator(map);
for(i=0;i<number;i++)
{
QByteArray Tag_name = Tag_data.mid(12+i*Tag_data.at(2),12);
unsigned char temp =Tag_data.at(5+i*25);
unsigned char percent = temp*100/255;
map.insert(Tag_name.toHex(),Tag_N1);
if(!iterator.hasNext())
{
map.insert(Tag_name.toHex(),Tag_N1);
}
while(iterator.hasNext())
{
iterator.next();
if(iterator.key().toHex()==Tag_name.toHex())
{
iterator.value()->setText(1,QString::number(percent)+"%");
qDebug() << iterator.key().toHex() << endl;
}
else
{
map.insert(Tag_name.toHex(),Tag_N1);
Tag_N1 = new QTreeWidgetItem(ReaderName,QStringList(Tag_name.toHex()));
Tag_N1->setText(1,QString::number(percent)+"%");
qDebug() << iterator.key() << endl;
}
}
}
}急!急!
快速回复
限100 字节
 
上一个 下一个