Автор: posi4 30.7.2009, 15:03
Нужно сделать простой MessageBox двумя кнопками и чтобы там еще был CheckBox для второстепенной опции.
Не хотелось бы писать новый виджет для этого, а как нибудь проще. Если кто знает как это сделать подскажите!
Как я не извращался с этими классами ничего не получилось.
Автор: AD 30.7.2009, 15:05
Цитата(posi4 @ 30.7.2009, 16:03)
Нужно сделать простой MessageBox двумя кнопками и чтобы там еще был CheckBox для второстепенной опции.
Не хотелось бы писать новый виджет для этого, а как нибудь проще. Если кто знает как это сделать подскажите!
Как я не извращался с этими классами ничего не получилось.
Сделать просто какое-то предупреждение с 2 кнопками можно. QMessageBox для этого есть. Ты поясни, что ты хочешь получить, при нажатии на этот чекбокс?
Автор: SABROG 30.7.2009, 15:26
Цитата(posi4 @ 30.7.2009, 16:03)
Как я не извращался с этими классами ничего не получилось
А как ты извращался? Метод void QMessageBox::addButton ( QAbstractButton * button, ButtonRole role ) должен помочь, QCheckBox на базе класса QAbstractButton.
Автор: posi4 30.7.2009, 15:55
Цитата
Сделать просто какое-то предупреждение с 2 кнопками можно. QMessageBox для этого есть. Ты поясни, что ты хочешь получить, при нажатии на этот чекбокс?
Допустим вот так: вызывается MessageBox, что то типа "Значения были изменены! Подтвердить?" -> две кнопки "OK", "Cancel" и
в этом MessageBox'e над кнопками CheckBox, что-нибудь такое "Создать резервный файл текущих настроек". Т.е. нужно указывать
создавать или нет.
Цитата
А как ты извращался? Метод void QMessageBox::addButton ( QAbstractButton * button, ButtonRole role ) должен помочь, QCheckBox на базе класса QAbstractButton.
Именно с этим методом и извращался. Я тоже подумал что все кнопки от QAbstractButton, но компилятор не хочет подставлять QCheckBox в
QAbstractButton. А почему не пойму! Ведь по сути QPushButton и QCheckBox - это близнецы!
Автор: BRE 30.7.2009, 15:57
Цитата(posi4 @ 30.7.2009, 16:55)
Я тоже подумал что все кнопки от QAbstractButton, но компилятор не хочет подставлять QCheckBox в
QAbstractButton. А почему не пойму! Ведь по сути QPushButton и QCheckBox - это близнецы!
Показал-бы свой код.
Автор: posi4 30.7.2009, 16:25
Вроде разобрался, просто неправильно тип приводил!
Но теперь другое дело, как в мессэджбоксе кнопки расположить друг над другом? Есть такая возможность?
А то они у меня в строчку!
QMessageBox msg;
msg.setText("The values has been modified.");
msg.setInformativeText("Do you want to save your previous state?");
msg.setStandardButtons(QMessageBox::Save | QMessageBox::Cancel);
msg.setDefaultButton(QMessageBox::Save);
QCheckBox* checkFlag = new QCheckBox();
msg.addButton((QAbstractButton*)checkFlag, QMessageBox::ActionRole);
msg.exec();
Автор: SABROG 30.7.2009, 16:46
Я так и думал, что у тебя возникнет этот вопрос. ИМХО тебе проще будет сделать свой диалог унаследовав QDialog. Если не хочется, тогда надо найти способ получить layout у QMessageBox и перестроить его детей как тебе нужно. Только это не правильно и может не сработать.
Автор: BRE 30.7.2009, 16:56
Цитата(SABROG @ 30.7.2009, 17:46)
ИМХО тебе проще будет сделать свой диалог унаследовав QDialog.
+1