在标准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()));
}