函数
Qt的指针自动管理系统使得用户无需再手动delete内存,因而我们常常就会将指针创建在函数中,但这样会使得指针在函数外不可见,如果需要用到这些指针怎么办?函数findChild()为我们提供了查找指定指针的办法,其函数原型如下:
- T QObject::findChild(const QString & name = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const
释义
- 这是一个模板函数,调用时需要指定小部件类型。name为用setObjectName(const QString & name)定义的小部件的名称,options用于指定指针搜索范围,默认为所有child(即使不是parent的直接child)。
示例
示例1. 返回parentWidget的一个名为"button1"的QPushButton类型child指针,即使不是parentWidget的直接child。
QPushButton * button = parentWidget->findChild<QPushButton *>("button1");
示例2. 返回parentWidget的一个QListWidget类型的child指针
QListWidget * list = parentWidget->findChild<QListWidget *>();
示例3. 返回parentWidget的一个名为"button1"的QPushButton类型child指针,必须是parentWidget的直接child。
QPushButton * button = parentWidget->findChild<QPushButton *>("button1", Qt::FindDirectChildrenOnly);
示例4. 返回parentWidget的一个QListWidget类型的child指针,必须是parentWidget的直接child。
QListWidget * list = parentWidget->findChild<QListWidget *>(QString(), Qt::FindDirectChildrenOnly);