返回该对象的所有具有可转换为类型T的给定名称的子对象,
如果没有这样的对象,则为空列表。省略name参数将导致匹配所有对象名称。搜索是递归执行的,除非选项指定FindDirectChildrenOnly选项。
使用如下
QList<QWidget *> widgets = parentWidget.findChildren<QWidget *>("widgetname");
QList<QPushButton *> allPButtons = parentWidget.findChildren<QPushButton *>();
QList<QPushButton *> childButtons = parentWidget.findChildren<QPushButton *>(QString(), Qt::FindDirectChildrenOnly);
查找某个界面下的所有按钮
QList<QToolButton *> btns = this->findChildren<QToolButton *>();
然后还可以用foreach 绑定到同个槽函数,
foreach (QToolButton * btn, btns)
{
connect(btn, SIGNAL(clicked()), this, SLOT(buttonClick()));
}
然后槽函数通过按钮名称判断哪个按钮按下
void frmMain::buttonClick()
{
QToolButton *btn = (QToolButton *)sender();
QString objName = btn->objectName();
if (objName == "btnCOMTool")
{
}
}