2

素敵な簡単な例がいいでしょう。私としては、次のようなことをしたいと考えています。

myLayout->addWidget(myButton1);
myLayout->addWidget(myButton2);

myButtonList<QToolButtons*>->append(myLayout->findChildren(QToolButtons));

myButtonList->at(1)->setText("This is 'myButton2'");
4

2 に答える 2

5

はるかに簡単なのは、最初にリストを埋めてからレイアウトを埋めるアプローチです。

QList<QToolButton *> list;
list.append(new QToolButton);
list.last().setText("1");

myLayout->addWidget(list.last());

これは、より多くのボタンに対して簡単にループすることもできます。

あなたはまだ使用することができます

ParentWidget->findChildren<QToolButtons *>();

親の指定された vahancho ヒントを編集すると、レイアウトではなく、常にウィジェットになります

于 2013-09-16T12:02:59.090 に答える
5

QLayout は QWidget を子として表示せず、QWidget には親 QWidget しかないため、QWidget で findChildren を使用するとともに QList を使用します。これを参照

QWidget w;
QPushButton *p1= new QPushButton;
QPushButton *p2= new QPushButton;
QHBoxLayout l;
l.addWidget(p1);
l.addWidget(p2);
w.setLayout(&l);
QList<QPushButton*> buttons = w.findChildren<QPushButton*>();
buttons.at(0)->setText("Hello I am P1"); 
buttons.at(1)->setText("Hello I am P2");
w.show();
于 2013-09-16T12:06:04.870 に答える