方法:使用qobject_cast<QLabel*>() ,将通过itemAt(i)获取到的子控件(QLayoutItem)强转为子控件的实际类型(如QLineEdit、QLabel等)。
场景举例:
QLabel *label = qobject_cast<QLabel*>(ui->horizontalLayout_40->itemAt(0)->layout()->itemAt(1)->widget());
label->setStyleSheet("color:rgb(0,255,0)");
label->setText("合格");
可以看到我们可以通过itemAt获取到子控件,类型是QLayoutItem,如果要转成QLabel,使用的是qobject_cast<QLabel*>将QLayoutItem强转成QLabel类型,这样就可以对label进行修改啦。