QWidget类没有提供查找子控件的方法,但是它爹QObject有。

这个方法就是findChild,它长这样:

很显然它是一个模板,因此使用时需要提供一个类型,这个类型就是要查找的对象的类型。

 

函数有两个参数:

第一个是要查找的对象名(对象名通过setObjectName设置)

第二个表示查找直接孩子还是递归查找(可以查找后代的后代),默认Qt::FindChildrenRecursively(递归),只查找直接孩子是Qt::FindDirectChildrenOnly。

 

函数返回值:

函数返回查找到的对象,若没找到则返回0。

 

例:

1.在一个QWidget上放置两个QLineEdit和一个QPushButton

2.分别设置三个控件的对象名,然后用findChild查找第一个lineEdit并设置其文本。

 

3.执行结果:

 

注:findChild只返回一个孩子,需要查找多个孩子使用findChildren函数。

可以看到findChildren的参数和findChild的参数是一样的。

 

---> 文章来源于我的个人博客:fearlazy
---> 编程是一件怎么也学不会的事情,但是如果能享受学习的过程也是挺好的。