Qt 之 findChild(循环操作多个控件)

今天要获取每个lineedit的内容,发现了太麻烦了,
str[0] = ui->lE_Temp1->text();
str[1] = ui->lE_Temp2->text();
str[2] = ui->lE_Temp3->text();
str[3] = ui->lE_Temp4->text();
str[4] = ui->lE_Temp5->text();
str[5] = ui->lE_Temp6->text();
str[6] = ui->lE_Temp7->text();
str[7] = ui->lE_Temp8->text();
就在想有没有一个简单的办法,不然这谁受得了啊,于是一百度一查,果然发现可以通过查找儿子的方式
for(int i=1;i<8;i++){
QLineEdit* lE=findChild<QLineEdit*>("lE_Temp"+QString::number(i));
if(lE!=NULL)           
qDebug() << lE->text();
 }

这样就可以很简单操作了,于是我就了解了一下findChild函数,

描述

返回对象中类型可以转换为T,并且名为name的孩子。如果不满足条件,则返回0。默认执行递归搜索,除非指定选FindDirectChildrenOnly。如果有一个以上的孩子匹配搜索,返回最直接的祖先。如果有几个直系祖先,没有定义哪一个将被返回。这种情况下,应该使用findChildren()。说简单点,就是一个找爸爸的函数

 

猜你喜欢

转载自blog.csdn.net/qq_41399894/article/details/87872176