大佬教程收集整理的这篇文章主要介绍了Qt C – 访问动态创建的Widget(QLineEdit),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
QLineEdit* warstwaEdit[iloscWarstw]; //iloscWarstw - number user inputs QPushButton* warstwaDialog[iloscWarstw]; for(int i=0; i<iloscWarstw; i++) { warstwaEdit[i] = new QLineEdit; warstwaEdit[i]->setFixedHeight(25); warstwaEdit[i]->setFixedWidth(400); ui->scrollAreaWidgetContentsFormularzWarstw->layout()->addWidget(warstwaEdit[i]); warstwaDialog[i] = new QPushButton; warstwaDialog[i]->setFixedWidth(100); warstwaDialog[i]->setFixedHeight(30); warstwaDialog[i]->setText("Dodaj element"); ui->scrollAreaWidgetContentsFormularzWarstw->layout()->addWidget(warstwaDialog[i]); mapperDialog->setMapping(warstwaDialog[i],i); connect(warstwaDialog[i],SIGNAL(clicked()),mapperDialog,SLOT(map())); }@H_502_12@但我无法让Dialog将String传递给“他的”标签.在Dialog的插槽中,我正在尝试使用
ui->scrollAreaWidgetContentsFormularzWarstw->layout()->warstwaEdit[i]->setText(filepath);@H_502_12@但显然QLayout()(或scrollAreaWidgetContentsFormularzWarstw)都有一个成员“warstwaEdit”.在该槽中使用的qDebug()表示正在传递正确的i. TreeDump表示ScrollAreaWidgetContentsFormularzWarstw是父级.
由于您将小部件存储在数组中,因此您无需通过布局实际访问它们.只需在您的阵列上直接访问它们:
warstwaEdit[i]->setText(filepath);@H_502_12@另一种方法是命名您的小部件:
warstwaEdit[i]->setObjectName("some name");@H_502_12@然后使用find访问它们:
QLineEdit* lineEdit = ui->scrollAreaWidgetContentsFormularzWarstw->findChild<QLineEdit*>("some name"); lineEdit->setText(filePath);@H_502_12@
以上是大佬教程为你收集整理的Qt C – 访问动态创建的Widget(QLineEdit)全部内容,希望文章能够帮你解决Qt C – 访问动态创建的Widget(QLineEdit)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。