скрыть один из лэйаутов виджета вместе со всем его содержимым, а при повторном нажатии вновь отобразить? Понятно, что нужно соединить сигналом-слотом, вопрос в том, есть ли такой метод. Спасибо )
Может кто-то подскажет =)
У виджетов есть setVisible У лайоутов такого нет. Просто берешь и помещаешь в лайоут главный виджет, в этом виджете размещаешь всякие контролы. Когда надо, скрываешь только главный виджет и все его дети тоже скроются
Спасибо, попробую 👌
Не подскажите, есть ли возможность сделать так, чтобы пользователь сам создавал чекбоксы? Например, нажимает на спинбокс, выбирая их количество, и они появляются
Спокойно, через цикл создавать программно чекбоксы и помещать в нужный лайоут
Что-то наподобие этого? for(int i=0; i<n; ++i) { QCheckBox *cb = new QCheckBox; cb->setText(QString::number(i)); ui->verticallayout->addWidget(cb); }
Глупый вопрос, динамически созданные виджеты не нужно нигде удалять?
Когда ты помещаешь в лайоут, динамическому виджету назначается родитель - лайоут. При закрытии приложения, Qt сама рекурсивно удалит за собой все выделенные объекты у которых есть родитель. Если мало уверенности, ставь анализатор памяти и исследуй утечки
небольшое уточнение - родителем не лайаут ставится а виджет в котором лайаут
если у тебя постоянно добавляются/удаляются widgets, то при удалении лучше удалять через deleteLater() иначе все твои удаленные компоненты будут копиться в списке родителя
Под виджетом Вы понимаете же не только Widget, но и spinbox, checkbox и тд и тп?
Люди, подскажите, пожалуйста, как выцепить текст чекбокса при его нажатии, не могу додуматься как через toggled сделать..🤦♂️
Обсуждают сегодня