Диалоговое окно изменения формы
Я пытался использовать диалоговое окно изменения формы, то есть, когда я нажимаю на кнопку, размер диалогового окна должен стать большим с дополнительными деталями. Для этого я написал следующий код на кнопке:
QObject::connect(ui->moreButton, SIGNAL(toggled(bool)),
ui->sgroupBox, SLOT(setVisible(bool)));
но в моем диалоговом окне не происходит никаких изменений. Что мне делать в этом случае.
Я скрыл дополнительные детали, поместив их в сетку с помощью функции hide(). Дополнительные детали скрываются, но размер виджета не изменяется.
Пожалуйста, помогите мне с решением
1 ответ
Если я правильно понимаю ваш вопрос, вы пытаетесь изменить размер окна QDialog после нажатия кнопки в вашем пользовательском интерфейсе?
Поскольку QDialog наследуется от QWidget, вы можете вызвать метод QWidget::resize(int width, int height).
Теперь, чтобы заставить QDialog расти, когда вы нажимаете кнопку, вам просто нужно подключить переключаемый (bool) сигнал к слоту, который затем вызывает изменение размера.
то есть.
QObject::connect(ui->moreButton, SIGNAL(toggled(bool)), whateverClassManagesYourQDialog, onButtonToggled(bool));
Затем внедрите этот слот в ваш класс, который управляет вашим QDialog: т.е.
// This is a slot in your class which implements QDialog
whateverClassManagesYourQDialog::onButtonToggled(bool toggledState){
ui->sGroupBox.setVisible(toggledState); // This will show or hide sGroupBox
resize(someIncrement,someIncrement); // This will grow your QDialog
}