В статье описаны главные моменты при создании пользовательских окон.
1. Изменение внешнего вида окна
Чтобы изменить внешний вид диалогового окна, нужно при создании установить соответствующий тип окна. Например:
Dialog dlg(this); dlg.setWindowFlags(Qt::Tool); dlg.exec();
Для более тонкой настройки внешнего вида окна, следует комбинировать доступные флаги окна. Например, чтобы создать окно без каких либо кнопок в заголовке, нужно использовать такой код:
Dialog dlg(0); dlg.setWindowFlags(Qt::Window | Qt::CustomizeWindowHint | Qt::WindowTitleHint); dlg.exec();
Список доступных типов и флагов, можно посмотреть здесь.
2. Изменение размера окна при открытии
Чтобы максимизировать диалоговое окно при открытии, следует изменить состояние окна с помощью такого кода:
Dialog dlg(this); dlg.setWindowState(Qt::WindowMaximized); dlg.exec();
Все доступные состояния окна можно посмотреть здесь.
3. Обработка событий кнопок QDialogButtonBox
При создании пользовательских диалоговых окон, часто приходится пользоваться классом QDialogButtonBox
. Этот класс представляет из себя контейнер стандартных кнопок, таких как: Ok
, Cancel
, Save for all
, Save
, Ignore
и т.п. В этой статье описано как узнать на какую именно кнопку нажал пользователь и как обработать это событие.
При нажатии кнопки на компоненте buttonBox
посылается сигнал clicked(QAbstractButton*)
. Нужно перехватить этот сигнал и обработать следующим кодом:
void Dialog::pressButton(QAbstractButton * button) { if ( button == ui->buttonBox->button(QDialogButtonBox::Yes) ) QMessageBox::information(this, "Information", "Yes button pressed"); }
Аналогичным образом обрабатываются и другие кнопки.
Удачи!
Комментариев нет:
Отправить комментарий