Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: QMessageBox + QCheckBox = ?
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
posi4
Нужно сделать простой MessageBox двумя кнопками и чтобы там еще был CheckBox для второстепенной опции.
Не хотелось бы писать новый виджет для этого, а как нибудь проще. Если кто знает как это сделать подскажите!
Как я не извращался с этими классами ничего не получилось.
AD
Цитата(posi4 @ 30.7.2009, 16:03) *
Нужно сделать простой MessageBox двумя кнопками и чтобы там еще был CheckBox для второстепенной опции.
Не хотелось бы писать новый виджет для этого, а как нибудь проще. Если кто знает как это сделать подскажите!
Как я не извращался с этими классами ничего не получилось.

Сделать просто какое-то предупреждение с 2 кнопками можно. QMessageBox для этого есть. Ты поясни, что ты хочешь получить, при нажатии на этот чекбокс?
SABROG
Цитата(posi4 @ 30.7.2009, 16:03) *
Как я не извращался с этими классами ничего не получилось


А как ты извращался? Метод void QMessageBox::addButton ( QAbstractButton * button, ButtonRole role ) должен помочь, QCheckBox на базе класса QAbstractButton.
posi4
Цитата
Сделать просто какое-то предупреждение с 2 кнопками можно. QMessageBox для этого есть. Ты поясни, что ты хочешь получить, при нажатии на этот чекбокс?


Допустим вот так: вызывается MessageBox, что то типа "Значения были изменены! Подтвердить?" -> две кнопки "OK", "Cancel" и
в этом MessageBox'e над кнопками CheckBox, что-нибудь такое "Создать резервный файл текущих настроек". Т.е. нужно указывать
создавать или нет.

Цитата
А как ты извращался? Метод void QMessageBox::addButton ( QAbstractButton * button, ButtonRole role ) должен помочь, QCheckBox на базе класса QAbstractButton.


Именно с этим методом и извращался. Я тоже подумал что все кнопки от QAbstractButton, но компилятор не хочет подставлять QCheckBox в
QAbstractButton. А почему не пойму! Ведь по сути QPushButton и QCheckBox - это близнецы!
BRE
Цитата(posi4 @ 30.7.2009, 16:55) *
Я тоже подумал что все кнопки от QAbstractButton, но компилятор не хочет подставлять QCheckBox в
QAbstractButton. А почему не пойму! Ведь по сути QPushButton и QCheckBox - это близнецы!

Показал-бы свой код. ;)
posi4
Вроде разобрался, просто неправильно тип приводил!
Но теперь другое дело, как в мессэджбоксе кнопки расположить друг над другом? Есть такая возможность?
А то они у меня в строчку!

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
Я так и думал, что у тебя возникнет этот вопрос. ИМХО тебе проще будет сделать свой диалог унаследовав QDialog. Если не хочется, тогда надо найти способ получить layout у QMessageBox и перестроить его детей как тебе нужно. Только это не правильно и может не сработать.
BRE
Цитата(SABROG @ 30.7.2009, 17:46) *
ИМХО тебе проще будет сделать свой диалог унаследовав QDialog.

+1
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2020 IPS, Inc.