Вопрос в заголовке. Пытался сделать так
QGridLayout *layout;
...
QPushButton *btn = new QPushButton("click me");
QPlainTextEdit *textEdit = new QPlainTextEdit();
layout->addWidget(textEdit);
layout->addWidget(btn);
QPlainTextEdit *foundTextEdit = layout->findChild<QPlainTextEdit*>();
if (!foundTextEdit)
qDebug() << "((("; //всегда срабатывает
qDebug() << layout->children().size(); //всегда выводит 0
но ничего не вышло.
Нашел на английской версии сайта как перебирать: https://stackoverflow.com/questions/4065378/qt-get-children-from-layout. Удалял с помощью QLayout::takeItem
и delete
.
Пример:
QGridLayout *layout = new QGridLayout;
QPushButton *btn = new QPushButton("click me!");
QPlainTextEdit *textEdit = new QPlainTextEdit;
layout->addWidget(btn);
layout->addWidget(textEdit);
for (int i = 0; i < layout->count(); ++i)
{
QWidget *widget = layout->itemAt(i)->widget();
//qobject_cast<QPushButton*>(widget) или qobject_cast<QPlainTextEdit*>(widget)
}
while (QLayoutItem *itm = layout->takeItem(0))
{
delete itm->widget();
delete itm;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Здравствуйте! Возможно, вопрос уже был, однако я усердно искал и не нашелКак инициализировать динамический n-мерный массив нулями при объявлении?...
Как заполнить стандартный контейнер очередь (queue) данными из файла с помощью стандартных алгоритмов?