Указание типа окна

При использовании класса QWidget по умолчанию окно создается с заголовком, в котором расположены: значок, текст заголовка и кнопки Свернуть, Развернуть и Закрыть. Указать другой тип создаваемого окна позволяет метод setWindowFlags() или параметр f в конструкторе класса QWidget. Обратите внимание на то, что метод setWindowFlags() должен вызываться перед отображением окна. Прототип метода:

void setWindowFlags(Qt::WindowFlags type)

В параметре type можно указать следующие константы:

  • Qt::Widget — тип по умолчанию для класса QWidget;
  • Qt::Window — указывает, что компонент является окном, независимо от того, имеет он родителя или нет. Окно выводится с рамкой и заголовком, в котором расположены кнопки Свернуть, Развернуть и Закрыть. По умолчанию размеры окна можно изменять с помощью мыши;
  • Qt::Dialog — диалоговое окно. Окно выводится с рамкой и заголовком, в котором расположена кнопка Закрыть. Размеры окна можно изменять с помощью мыши. Пример указания типа для диалогового окна:
window.setWindowFlags(Qt::Dialog);
  • Qt::Sheet;
  • Qt::Drawer;
  • Qt::Popup — указывает, что окно является всплывающим меню. Окно выводится без рамки и заголовка. Кроме того, окно может отбрасывать тень. Изменить размеры окна с помощью мыши нельзя;
  • Qt::Tool — сообщает, что окно является панелью инструментов. Окно выводится с рамкой и заголовком (меньшем по высоте, чем обычное окно), в котором расположена кнопка Закрыть. Размеры окна можно изменять с помощью мыши;
  • Qt::ToolTip — указывает, что окно является всплывающей подсказкой. Окно выводится без рамки и заголовка. Изменить размеры окна с помощью мыши нельзя;
  • Qt::SplashScreen — сообщает, что окно является заставкой. Окно выводится без рамки и заголовка. Изменить размеры окна с помощью мыши нельзя. Значение по умолчанию для класса QSplashScreen;
  • Qt::SubWindow — сообщает, что окно является дочерним компонентом, независимо от того, имеет он родителя или нет. Окно выводится с рамкой и заголовком (меньшем по высоте, чем обычное окно) без кнопок. Изменить размеры окна с помощью мыши нельзя;
  • Qt::ForeignWindow;
  • Qt::CoverWindow.

Определить тип окна из программы позволяет метод windowType(). Прототип метода:

Qt::WindowType windowType() const

Для окон верхнего уровня можно дополнительно указать следующие константы через оператор | (перечислены только наиболее часто используемые константы; полный список смотрите в документации):

  • Qt::MSWindowsFixedSizeDialogHint — запрещает изменение размеров окна. Изменить размеры с помощью мыши нельзя. Кнопка Развернуть в заголовке окна становится неактивной;
  • Qt::FramelessWindowHint — убирает рамку и заголовок окна. Изменять размеры окна и перемещать его нельзя;
  • Qt::CustomizeWindowHint — убирает заголовок окна. Размеры окна можно изменять с помощью мыши;
  • Qt::WindowTitleHint — добавляет заголовок окна. Выведем окно с заголовком, в котором находится только текст и неактивная кнопка Закрыть:
window.setWindowFlags(Qt::Window |
                      Qt::WindowTitleHint);
  • Qt::WindowSystemMenuHint — добавляет оконное меню;
  • Qt::WindowMinimizeButtonHint — кнопка Свернуть в заголовке окна делается активной;
  • Qt::WindowMaximizeButtonHint — кнопка Развернуть в заголовке окна делается активной;
  • Qt::WindowMinMaxButtonsHint — кнопки Свернуть и Развернуть в заголовке окна делаются активными;
  • Qt::WindowCloseButtonHint — добавляет кнопку Закрыть;
  • Qt::WindowContextHelpButtonHint — добавляет кнопку Справка. Кнопки Свернуть и Развернуть в заголовке окна не отображаются. Добавим кнопки Справка и Закрыть:
window.setWindowFlags(Qt::Window |
                      Qt::WindowCloseButtonHint |
                      Qt::WindowContextHelpButtonHint);
  • Qt::WindowStaysOnTopHint — сообщает системе, что окно всегда должно отображаться поверх всех других окон;
  • Qt::WindowStaysOnBottomHint — сообщает системе, что окно всегда должно расположено позади всех других окон.

Получить все установленные флаги из программы позволяет метод windowFlags(). Прототип метода:

Qt::WindowFlags windowFlags() const

Учебник C++ (Qt Creator и MinGW)
Учебник C++ (Qt Creator и MinGW) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов