• 4125阅读
  • 3回复

QT如何通过循环访问一组名称类似的控件 [复制链接]

上一主题 下一主题
离线horizonm
 

只看楼主 倒序阅读 楼主  发表于: 2013-05-07



我用qt creator直接在UI中创建了n个checkbox(widget名分别为checkbox_0,checkbox_1,...,checkbox_n),程序中想遍历每一个控件(设置或访问选中状态),现在只会一行一行写,不知道怎么通过循环直接访问checkbox_i,请问应该怎么写?


试着创建指针数组,但是好像会有问题,请问有什么别的办法嘛?
谢谢!

离线ffii4455

只看该作者 1楼 发表于: 2013-05-07
QVector <QWidget*> name;
name.append();
name.count()
name.at()
.....
离线jdwx

只看该作者 2楼 发表于: 2013-05-07
在构造函数里把指针放进数组,以后怎么用都行。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线马前卒

只看该作者 3楼 发表于: 2013-05-08
遍历容器的所有子组件, 利用元对象识别对象类型, 强制转换成可操作类型  

如下: framSlave是容器,实际是一个QFrame 组件,上面放N个QToolButton QToolButton 命名规则是 btnEventxx格式

QObject *pObj;
  for(int ii=0;ii<framSlave->children().count();++ii)
  {
      pObj = framSlave->children().at(ii);
      if(0==strcmp(pObj->metaObject()->className(),(const char *)"QToolButton"))
      if(pObj->objectName().contains("btnEvent"))
      {
          connect(pObj,SIGNAL(clicked()),this,SLOT(clickFingerButton()));
      }
  }
快速回复
限100 字节
 
上一个 下一个