• 9634阅读
  • 8回复

[提问]请问各位高手如何使用循环给一组label控件设置数据? [复制链接]

上一主题 下一主题
离线flybabys
 

只看楼主 正序阅读 楼主  发表于: 2011-03-03
各位老大,项目中使用大量的label控件,想在循环中给这组label赋值,比如贴图,
目前定义label的名称为label_0到label_99,如何使用循环快速完成!
比如
for (i=0;i<100,i++)
ui->lable_(i)->setPixmap(Image);
就是此处label_(i),用什么函数可以使得循环中的 i 能转换为label的相应序号?
希望我说明白了!在此谢过了!
离线XChinux

只看该作者 8楼 发表于: 2012-12-26
用遍历能否解决楼主的问题?
QList<QLabel *> labels = findChildren<QLabel *>();
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线wangyan23888

只看该作者 7楼 发表于: 2012-12-25
回 6楼(flybabys) 的帖子
能分享下工程吗?谢谢了
离线flybabys

只看该作者 6楼 发表于: 2011-03-04
谢谢楼上兄弟,解决了,重新定义了个QLabel map[n] 数组,然后把label逐一放入,
方法虽然笨点,但目的达到了,初学者,代码定义还不是很熟练,只能先这样了,呵呵!
离线roywillow

只看该作者 5楼 发表于: 2011-03-04
你可以不用designer而是用代码定义一个label数组啊
或者窗口初始化的时候一个一个把这一堆label放到一个列表中
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线flybabys

只看该作者 4楼 发表于: 2011-03-04
3楼的哥们能说的详细点吗?
比如目前:
void MainWindow::user_BmpRefresh()
{

iNumber = LabelImg_[0];
  SetImage();
  ui->Label_0->setPixmap(QPixmap(Image));
iNumber = LabelImg_[1];
  SetImage();
  ui->Label_1->setPixmap(QPixmap(Image));

iNumber = LabelImg_[2];
  SetImage();
  ui->Label_2->setPixmap(QPixmap(Image));
iNumber = LabelImg_[3];
  SetImage();
  ui->Label_3->setPixmap(QPixmap(Image));
            :
            :
            :
            :
            :
            :
  iNumber = LabelImg_[n];                          
  SetImage();                                      
  ui->Label_n->setPixmap(QPixmap(Image));
}
一般n>50,如果每个都这么写,太冗长了而且有些地方不适用,
怎样用循环的方式使用类似
for(i=0;i<n;i++)
{
  iNumber = LabelImg_;                
  SetImage();                            
  ui->Label_(i)->setPixmap(QPixmap(Image));
}
江湖救急啊!
离线free510
只看该作者 3楼 发表于: 2011-03-04
全塞到QList里  遍历一遍就行了
离线zmhulu

只看该作者 2楼 发表于: 2011-03-04
能编译通过?能否举例说明下下。
离线cuiman10

只看该作者 1楼 发表于: 2011-03-03
用数组可以。
做事有度,量体裁衣!
快速回复
限100 字节
 
上一个 下一个