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

使用 QList 以及将 findChildren 与 QWidget 一起使用,因为 QLayout 不会将 QWidgets 显示为其子级,并且 QWidget 仅具有父级 QWidget。参考这个

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 回答