QT中的foreach

在标准C++中,并没有foreach关键字。foreach 语句为数组或对象集合中的每个元素重复一个嵌入语句组。foreach 语句用于循环访问集合以获取所需信息,但不应用于更改集合内容以避免产生不可预知的副作用。

但是在QT中,可以使用这一个关键字,其主要原因是QT自己增加了这一个关键字,就像slots和signals、emit等一样。增加的foreach关键字在编译时会进行预处理。

其用法为:

foreach (varItem , Items)  // foreach(variable ,container)

其中,varItem(variable)是容器Items(container)中的一个项,相当于:variable=container.item 。遍历会从头遍历到尾。

    QList<QToolButton *> btns = this->findChildren<QToolButton *>();

    foreach (QToolButton * btn, btns)
    {
        connect(btn, SIGNAL(clicked()), this, SLOT(buttonClick()));
    }

猜你喜欢

转载自blog.csdn.net/SuGuolin/article/details/86236689