template<typename T>
QList<T> getTargetWidget(QWidget* parent){
if(!parent) return;
QList<T> res;
foreach(QObject* item,parent->children()){
if(T t = dynamic_cast<T>(item))
res.append(t);
else if(QWidget* w = dynamic_cast<QWidget*>(w)) //递归
res.append(getTargetWidget<T>(w));
}
return res;
}
总结
有时候需要对某一类组件整体进行操作可以通过此方法获取到所有的目标对象指针,不需要都作为成员变量