如何获取qt控件的子控件
我们知道,所有的qt控件都继承自QObject,而QObject有一个属性叫做objectName。我们可以利用这个属性。
查找对象的方法,可以利用findChild()和fildChildren()。函数原型如下:
T QObject::findChild(const QString &name = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const
QList QObject::findChildren(const QString &name = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const
具体使用方式,可通过qt助手查看。
示例:
//获取ui->widget_4的所有类型为QPushButton的子控件,并且遍历遍历,打印显示控件文本,和控件名
QList<QPushButton*> buttons = ui->widget_4->findChildren<QPushButton*>();
foreach(auto btn, buttons)
{
qDebug()<<btn->text()<<btn->objectName();
}
//获取 ui->widget_4的子控件中名为“btnFileMng”类型为QPushBottn的控件。
QPushButton* btn = ui->widget_4->findChild<QPushButton*>("btnFileMng");