访问另一个内部布局中的lineEdit

问题描述 投票:0回答:1

我遇到了一个我无法解决的问题。我有一个父(在QT设计器中添加)和子(由代码添加)布局。我将QLineEditQlabel小部件添加到子布局,然后我将此布局添加到父布局:

lbl = new QLabel(this);
currentResistorText += tr("Resistor") + tr("#") + QString::number(resistorCounter);
lbl->setText(currentResistorText);
newResistorLayout = new QHBoxLayout();
lineEdit = new QLineEdit(this);
newResistorLayout->addWidget(lbl);
ui->resistorsLayout->addRow(newResistorLayout);

如何才能访问lineEdit内部的newResistorLayout元素? 我正在使用Qt 5.8。

c++ qt qt5
1个回答
0
投票

看看这三个功能:

QList<T> qFindChildren(const QObject *obj, const QString &name = QString());

QList<T> qFindChildren(const QObject *obj, const QRegExp &regExp)

T qFindChild(const QObject *obj, const QString &name = QString());

你可以写这样的代码:

QList<QLineEdit *> edits = qFindChildren<QLineEdit *>(newResistorLayout);

然后,您可以循环编辑并执行您喜欢的操作。此外,如果对象具有您知道的名称(通过setObjectName设置),则可以指定名称以准确找到您要查找的名称。

注意:通过设计器创建的GUI通常在所有小部件上都有名称,uic工具将发出代码来设置所有对象名称。

© www.soinside.com 2019 - 2024. All rights reserved.