Класс главного окна QMainWindow


QMainWindow — это очень важный класс, который реализует главное окно, содержащее в себе типовые виджеты, необходимые большинству приложений, такие как меню, секции для панелей инструментов, рабочую область, строки состояния. В этом классе внешний вид уже подготовлен и его виджеты не нуждаются в дополнительном размещении, так как они уже находятся в нужных местах.

Окно приложения, изображенное на рисунке, имеет рамку, область заголовка для отображения имени и три кнопки, управляющие окном. Кроме этого, окно приложения имеет меню, которое располагается ниже области заголовка окна. Панель инструментов расположена под меню. Под рабочей областью расположена строка состояния.

Указатель на виджет меню можно получить вызовом метода QMainWindow::menuBar() и установить в нем нужные всплывающие меню:


QMenu* pmnuFile = new QMenu("&File") ; 
pmnuFile->addAction("&Save");
...
menuBar()->addMenu(pmnuFile);

Главное окно приложения, созданное с помощью класса QMainWindow

Как правило, устанавливаются следующие всплывающие меню:

  • File (Файл) — содержит основные операции для работы с файлами: New (Создать) Open (Открыть), Save (Сохранить), Print (Печать) и Quit (Выход);
  • Edit (Правка) — содержит команды общего редактирования: Cut (Вырезать), Сору (Копировать), Paste (Вставить); Undo (Отменить), Redo (Повторить), Find (Найти), Replace (Заменить) и Delete (Очистить);
  • View (Вид) — содержит команды, изменяющие представление данных окна. Например, команда Zoom (Масштаб) масштабирует отображение документа. В это меню можно включать и те команды, которые управляют отображением элементов интерфейса приложения, например: панели инструментов и строки состояния;
  • Help (Справка) — необходима для предоставления помощи пользователю, при освоении приложения. А также, обычно, включает в себя информацию об авторских правах приложения. Например, при выборе команды About (О программе) появится окно, отображающее имя приложения, его версию, информацию об авторских правах.

Чтобы получить указатель на рабочую область, следует вызвать метод QMainWindow::centralWidget(), который вернет указатель на QWidget. Для установки виджета рабочей области потребуется вызвать метод QMainWindows::setCentralWidget() и передать в него указатель на этот виджет.

Метод QMainWindow::statusBar() возвращает указатель на виджет строки состояния. Кнопка изменения размеров окна, расположенная в нижнем правом углу строки состояния, является всего лишь подсказкой для пользователя, сообщающей о том, что размеры главного окна могут быть изменены. Этот виджет реализован в классе QSizeGrip. Получить указатель на него из класса главного окна (QMainWindow) невозможно, так как он находится под контролем виджета строки состояния.

Читать далее: Предшествующее окно QSplashScreen