Привет, как работать с gridLayout если я добавляю в него

QWidget вот так ui->gridLayout->addWidget(new Form(this)); но потом мне надо ui->gridLayout->removeWidget(?); хранить в форме указатель на виджет или как?

11 ответов

8 просмотров

сап либо через запоминание указателя либо findChildern и среди них искать то что нужно

миша
сап либо через запоминание указателя либо findChil...

Лучше все-таки хранить указатели, на мой взгляд лучше воздерживаться от мета программирования по возможности.

'Егор-'Зорин Автор вопроса
Повторев Владимир
Лучше все-таки хранить указатели, на мой взгляд лу...

А как их тогда удалять? если допустим так ui->gridLayout->addWidget(new Form(form_ptr)); ui->gridLayout->removeWidget(form_ptr); Не работает Тогда так? form_ptr = new Form(); ui->gridLayout->addWidget(form_ptr); delete form_ptr; Это работает)

'Егор-'Зорин Автор вопроса
Повторев Владимир
Ну так и делается :)

выглядит всрато, кажется это не правильно просто

'Егор 'Зорин
выглядит всрато, кажется это не правильно просто

Ну тут, как бы, вопрос в принципе возникает зачем его удалять из layout, но не удалять физически? Он же где-то должен остаться тогда. Если он ещё нужен - тогда проще и правильнее, наверное, скрыть. Если он переносится в другой layout, тогда да, надо подругому.

'Егор-'Зорин Автор вопроса
Повторев Владимир
Ну тут, как бы, вопрос в принципе возникает зачем ...

Ну есть комбобокс и в зависимости от варианта в гриде рисуется виджет

'Егор-'Зорин Автор вопроса
Повторев Владимир
Ну тут, как бы, вопрос в принципе возникает зачем ...

Ну тогда делать вектор виджетов и в конструкторе инициализировать а потом показывать или скрывать

'Егор 'Зорин
Ну есть комбобокс и в зависимости от варианта в гр...

QLayout это же просто компоновщик, по сути просто за размеры виджетов отвечает, т.е. удаление виджета из layout просто ломает пересчет его размеров и всё. В случае если нужно скрывать и показывать нужные виджеты можно попробовать для удобства использовать QStackedWidget или QStackedLayout. Тогда непридется удалять и руками отслеживать что один показать, а остальные скрыть.

'Егор 'Зорин
А как их тогда удалять? если допустим так ui->grid...

У последнего варианта у тебя не падает программа после закрытия окна?)

Mr.Mait
У последнего варианта у тебя не падает программа п...

Не должна, "наживую" можно спокойно удалять виджеты, родитель и layout, я так понимаю, отследят сигнал об удалении и все корректно у себя почистят.

Похожие вопросы

Обсуждают сегодня

Так а кто может спарсить всех участников чата? Идишники
Magic
18
да пофиг на капчу зашел в чат и молчишь при этом ты нонейм? пошел вон
Magic
17
Всем привет) Я попробовал турбо роутер октябрьский. Вроде доволен, но возникла проблемка) Бутстраповские модалки плодят .modal-backdrop элементы Если модалка открыта, должне...
Виталий
3
Как удалить health check в Consul? Казалось бы, это должно быть не сложно, но я не могу найти в документации ничего про это, только про добавление service с health check "в н...
Roman
2
Я тебе про общие вопросы, а не про узконаправленные . Ты че будешь в чате спрашивать как хтмл разметку сделать?!
rusteg
3
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
13
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
Нужно магазин с тильды на опен кат перенести Есть кто умеет? В лс
Magic
8
Я колись ставив гуглу антиспам 3.0, може і норм, але мені не дуже зайшло. Теж думав тиждень, що його і куди. Зупинився на трех варіантах відразу всі три і включив 1. Перевір...
𝓔𝓾𝓰𝓮𝓷𝓮𝓥 J
2
Privet! Mozhet jesti ideji - nemogu sdelatj upload backup s filestore cerez WEB. Fail okolo 450mb, eto mozhet bitj prichinoi? Nemogu ponjatj..kak zagruzitj backup... Poluchaju...
Matiss 🤘 Black Oak IT 🌳 Batumi 🌴 Latvija
5
Карта сайта