Spec-Zone.ru › Qt 5.12

Класс QMainWindow

Класс QMainWindow предоставляет главное окно приложения. Подробнее...

Заголовок: #include <QMainWindow>
qmake: QT += widgets
Наследует: QWidget
  • Список всех членов, включая унаследованные
  • Устаревшие члены

Типы

перечисление DockOption { AnimatedDocks, AllowNestedDocks, AllowTabbedDocks, ForceTabbedDocks, VerticalTabs, GroupedDragging }
флаги DockOptions

Свойства

  • animated : bool
  • dockNestingEnabled : bool
  • dockOptions : DockOptions
  • documentMode : bool
  • iconSize : QSize
  • tabShape : QTabWidget::TabShape
  • toolButtonStyle : Qt::ToolButtonStyle
  • unifiedTitleAndToolBarOnMac : bool
  • 59 свойств унаследовано от QWidget
  • 1 свойство унаследовано от QObject

Открытые функции

QMainWindow(QWidget *parent = nullptr, Qt::WindowFlags flags = ...)
virtual ~QMainWindow()
void addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget)
void addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget, Qt::Orientation orientation)
void addToolBar(Qt::ToolBarArea area, QToolBar *toolbar)
void addToolBar(QToolBar *toolbar)
QToolBar * addToolBar(const QString &title)
void addToolBarBreak(Qt::ToolBarArea area = Qt::TopToolBarArea)
QWidget * centralWidget() const
Qt::DockWidgetArea corner(Qt::Corner corner) const
virtual QMenu * createPopupMenu()
QMainWindow::DockOptions dockOptions() const
Qt::DockWidgetArea dockWidgetArea(QDockWidget *dockwidget) const
bool documentMode() const
QSize iconSize() const
void insertToolBar(QToolBar *before, QToolBar *toolbar)
void insertToolBarBreak(QToolBar *before)
bool isAnimated() const
bool isDockNestingEnabled() const
QMenuBar * menuBar() const
QWidget * menuWidget() const
void removeDockWidget(QDockWidget *dockwidget)
void removeToolBar(QToolBar *toolbar)
void removeToolBarBreak(QToolBar *before)
void resizeDocks(const QList<QDockWidget *> &docks, const QList<int> &sizes, Qt::Orientation orientation)
bool restoreDockWidget(QDockWidget *dockwidget)
bool restoreState(const QByteArray &state, int version = 0)
QByteArray saveState(int version = 0) const
void setCentralWidget(QWidget *widget)
void setCorner(Qt::Corner corner, Qt::DockWidgetArea area)
void setDockOptions(QMainWindow::DockOptions options)
void setDocumentMode(bool enabled)
void setIconSize(const QSize &iconSize)
void setMenuBar(QMenuBar *menuBar)
void setMenuWidget(QWidget *menuBar)
void setStatusBar(QStatusBar *statusbar)
void setTabPosition(Qt::DockWidgetAreas areas, QTabWidget::TabPosition tabPosition)
void setTabShape(QTabWidget::TabShape tabShape)
void setToolButtonStyle(Qt::ToolButtonStyle toolButtonStyle)
void splitDockWidget(QDockWidget *first, QDockWidget *second, Qt::Orientation orientation)
QStatusBar * statusBar() const
QTabWidget::TabPosition tabPosition(Qt::DockWidgetArea area) const
QTabWidget::TabShape tabShape() const
QList<QDockWidget *> tabifiedDockWidgets(QDockWidget *dockwidget) const
void tabifyDockWidget(QDockWidget *first, QDockWidget *second)
QWidget * takeCentralWidget()
Qt::ToolBarArea toolBarArea(QToolBar *toolbar) const
bool toolBarBreak(QToolBar *toolbar) const
Qt::ToolButtonStyle toolButtonStyle() const
bool unifiedTitleAndToolBarOnMac() const
  • 214 public functions inherited from QWidget
  • 31 public functions inherited from QObject
  • 14 public functions inherited from QPaintDevice

Публичные слоты

void setAnimated(bool enabled)
void setDockNestingEnabled(bool enabled)
void setUnifiedTitleAndToolBarOnMac(bool set)
  • 19 public slots inherited from QWidget
  • 1 public slot inherited from QObject

Сигналы

void iconSizeChanged(const QSize &iconSize)
void активированЗакладчатыйВиджетПанели(QDockWidget *dockWidget)
void стильПанелиИнструментовИзменён(Qt::ToolButtonStyle toolButtonStyle)
  • 3 сигнала унаследованы от QWidget
  • 2 сигнала унаследованы от QObject

Статические публичные члены

const QMetaObject staticMetaObject
  • 5 статических публичных членов унаследованы от QWidget
  • 9 статических публичных членов унаследованы от QObject

Переопределённые защищённые функции

virtual void событиеКонтекстногоМеню(QContextMenuEvent *event) override
virtual bool событие(QEvent *event) override
  • 35 защищённых функций унаследованы от QWidget
  • 9 защищённых функций унаследованы от QObject
  • 1 защищённая функция унаследована от QPaintDevice

Дополнительные унаследованные члены

  • 35 защищённых функций унаследованы от QWidget
  • 9 защищённых функций унаследованы от QObject
  • 1 защищённая функция унаследована от QPaintDevice
  • 1 защищённый слот унаследован от QWidget

Подробное описание

Класс QMainWindow предоставляет главное окно приложения.

Qt Фреймворк Главного Окна

Главное окно предоставляет фреймворк для построения пользовательского интерфейса приложения. Qt имеет QMainWindow и его родственные классы для управления главным окном. QMainWindow имеет собственную компоновку, в которую можно добавить QToolBar, QDockWidget, QMenuBar и QStatusBar. Область центра может быть занята любым видом виджета. Ниже представлено изображение компоновки.

Примечание: Создание главного окна без центрального виджета не поддерживается. Вам нужен центральный виджет, даже если он просто заполнитель.

Создание Компонентов Главного Окна

Центральный виджет обычно является стандартным виджетом Qt, таким как QTextEdit или QGraphicsView. Для расширенных приложений также можно использовать пользовательские виджеты. Вы устанавливаете центральный виджет с setCentralWidget().

Главные окна имеют либо одно (SDI) или множество (MDI) документов интерфейса. Вы создаёте приложения MDI в Qt, используя QMdiArea как центральный виджет.

Теперь рассмотрим каждый из других виджетов, которые могут быть добавлены в главное окно. Приведём примеры их создания и добавления.

Создание Меню

Qt реализует меню в QMenu, а QMainWindow хранит их в QMenuBar. QAction добавляются в меню, которые отображаются как пункты меню.

Вы можете добавить новые меню в строку меню главного окна, вызвав menuBar(), которое возвращает QMenuBar для окна, а затем добавить меню с помощью QMenuBar::addMenu().

QMainWindow поставляется со стандартной строкой меню, но вы также можете установить её самостоятельно с помощью setMenuBar(). Если вы хотите реализовать пользовательскую строку меню (т.е. не использовать виджет QMenuBar), вы можете установить её с помощью setMenuWidget().

Пример создания меню приведён ниже:

    void MainWindow::createMenus()
    {
        fileMenu = menuBar()->addMenu(tr("&File"));
        fileMenu->addAction(newAct);
        fileMenu->addAction(openAct);
        fileMenu->addAction(saveAct);

Функция createPopupMenu() создаёт всплывающие меню, когда главное окно получает события контекстного меню. По умолчанию генерируется меню с флажками действий из панелей инструментов и виджетов панелей. Вы можете переопределить createPopupMenu() для пользовательского меню.

Создание Панелей Инструментов

Панели инструментов реализованы в классе QToolBar. Вы добавляете панель инструментов в главное окно с помощью addToolBar().

Вы контролируете начальное положение панелей инструментов, назначив их определённой области Qt::ToolBarArea. Вы можете разделить область, вставив разрыв панели инструментов — это как разрыв строки в редакторе текста — с помощью addToolBarBreak() или insertToolBarBreak(). Вы также можете ограничить размещение пользователем с помощью QToolBar::setAllowedAreas() и QToolBar::setMovable().

Размер значков панели инструментов можно получить с помощью iconSize(). Размеры зависят от платформы; вы можете установить фиксированный размер с помощью setIconSize(). Вы можете изменить вид всех кнопок инструментов на панелях инструментов с помощью setToolButtonStyle().

Пример создания панели инструментов приведён ниже:

    void MainWindow::createToolBars()
    {
        fileToolBar = addToolBar(tr("File"));
        fileToolBar->addAction(newAct);

Создание Виджетов Панелей

Виджеты панелей реализованы в классе QDockWidget. Виджет панели — это окно, которое можно прикрепить к главному окну. Вы добавляете виджеты панелей в главное окно с помощью addDockWidget().

Существует четыре области виджетов панелей, как указано в перечислении Qt::DockWidgetArea: слева, справа, сверху и снизу. Вы можете указать, какую область виджета панели должна занимать в местах пересечения областей с помощью setCorner(). По умолчанию каждая область может содержать только один ряд (вертикальный или горизонтальный) виджетов панелей, но если вы включите вложение с помощью setDockNestingEnabled(), виджеты панелей можно добавлять в любом направлении.

Два виджета панелей также могут быть сложены друг на друга. Для выбора отображаемого виджета используется QTabBar.

Мы приведём пример создания и добавления виджетов панелей в главное окно:

    QDockWidget *dockWidget = new QDockWidget(tr("Dock Widget"), this);
    dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea |
                                Qt::RightDockWidgetArea);
    dockWidget->setWidget(dockWidgetContents);
    addDockWidget(Qt::LeftDockWidgetArea, dockWidget);

Панель Состояния

Вы можете установить панель состояния с помощью setStatusBar(), но она создаётся в первый раз, когда вызывается statusBar() (возвращающий панель состояния главного окна). См. QStatusBar для получения информации о её использовании.

Сохранение Состояния

QMainWindow может сохранять состояние своей компоновки с помощью saveState(); его можно позже получить с помощью restoreState(). Сохраняются положение и размер (относительно размера главного окна) панелей инструментов и виджетов панелей.

См. также QMenuBar, QToolBar, QStatusBar, QDockWidget, Пример Приложения, Пример Виджетов Панелей, Пример MDI, Пример SDI и Пример Меню.

Документация по типам членов

перечисление QMainWindow::DockOption QMainWindow::DockOptions

Это перечисление содержит флаги, которые определяют поведение прикрепления QMainWindow.

Постоянная Значение Описание
QMainWindow::AnimatedDocks 0x01 Идентично свойству animated.
QMainWindow::AllowNestedDocks 0x02 Идентично свойству dockNestingEnabled.
QMainWindow::AllowTabbedDocks 0x04 Пользователь может переместить один виджет панели "наверх" другого. Два виджета сложены, и отображается панель вкладок для выбора видимого виджета.
QMainWindow::ForceTabbedDocks 0x08 Каждая область виджетов панелей содержит один стек виджетов панелей с вкладками. Другими словами, виджеты панелей не могут быть размещены рядом друг с другом в области виджетов панелей. Если этот параметр установлен, AllowNestedDocks не имеет эффекта.
QMainWindow::VerticalTabs 0x10 Две вертикальные области виджетов панелей по бокам главного окна показывают свои вкладки вертикально. Если этот параметр не установлен, все области виджетов панелей показывают свои вкладки внизу. Подразумевает AllowTabbedDocks. См. также setTabPosition().
QMainWindow::GroupedDragging 0x20 При перетаскивании заголовка виджета панели все вкладки, которые прикреплены к нему, будут перетаскиваться. Подразумевает AllowTabbedDocks. Не работает хорошо, если некоторые QDockWidgets имеют ограничения на области, в которых они разрешены. (Это значение перечисления было добавлено в Qt 5.6.)

Эти параметры только управляют тем, как виджеты панелей могут быть помещены в QMainWindow. Они не переупорядочивают виджеты панелей для соответствия указанным параметрам. По этой причине их следует устанавливать до добавления каких-либо виджетов панелей в главное окно. Исключение составляют параметры AnimatedDocks и VerticalTabs, которые можно установить в любое время.

Это перечисление было введено или изменено в Qt 4.3.

Тип DockOptions — это синоним для QFlags<DockOption>. Он хранит логическое ИЛИ сочетание значений DockOption.

END_OF_DOCUMENT_MARKER

Документация свойств

animated : bool

Это свойство указывает, анимированы ли операции по перемещению окон доков и панелей инструментов.

Когда окно дока или панель инструментов перетаскиваются над главным окном, главное окно изменяет своё содержимое, чтобы показать, куда оно будет пристыковано при отпускании. Установка этого свойства заставляет QMainWindow плавно анимировать перемещение содержимого. Сброс этого свойства вызывает мгновенное изменение позиций содержимого.

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

Установка этого свойства эквивалентна установке опции AnimatedDocks с помощью setDockOptions().

Это свойство было добавлено в Qt 4.2.

Функции доступа:

bool isAnimated() const
void setAnimated(bool enabled)

dockNestingEnabled : bool

Это свойство указывает, разрешено ли вложение окон доков.

Если это свойство false, области доков могут содержать только один ряд (горизонтальный или вертикальный) окон доков. Если это свойство true, область, занимаемая окном дока, может быть разделена в любом направлении, чтобы содержать больше окон доков.

Вложение окон доков необходимо только в приложениях с большим количеством окон доков. Оно даёт пользователю большую свободу в организации главного окна. Однако вложение окон доков приводит к более сложному (и менее интуитивному) поведению при перетаскивании окна дока над главным окном, так как существует больше способов размещения отпущенного окна дока в области доков.

Установка этого свойства эквивалентна установке опции AllowNestedDocks с помощью setDockOptions().

Это свойство было добавлено в Qt 4.2.

Функции доступа:

bool isDockNestingEnabled() const
void setDockNestingEnabled(bool enabled)

dockOptions : DockOptions

Это свойство содержит поведение пристыковки для QMainWindow.

Значение по умолчанию: AnimatedDocks | AllowTabbedDocks.

Это свойство было добавлено в Qt 4.3.

Функции доступа:

QMainWindow::DockOptions dockOptions() const
void setDockOptions(QMainWindow::DockOptions options)

documentMode : bool

Это свойство указывает, установлено ли режим документа для панели вкладок пристыкованных окон.

Значение по умолчанию: false.

Это свойство было добавлено в Qt 4.5.

Функции доступа:

bool documentMode() const
void setDocumentMode(bool enabled)

См. такжеQTabBar::documentMode.

iconSize : QSize

Размер значков панели инструментов в этом главном окне.

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

Функции доступа:

QSize iconSize() const
void setIconSize(const QSize &iconSize)

tabShape : QTabWidget::TabShape

Это свойство содержит форму вкладок, используемых для вкладок пристыкованных окон.

Значение по умолчанию: QTabWidget::Rounded.

Это свойство было добавлено в Qt 4.5.

Функции доступа:

QTabWidget::TabShape tabShape() const
void setTabShape(QTabWidget::TabShape tabShape)

См. такжеsetTabPosition().

toolButtonStyle : Qt::ToolButtonStyle

Стиль кнопок панели инструментов в этом главном окне.

Чтобы стиль кнопок следовал настройкам системы, установите это свойство в Qt::ToolButtonFollowStyle. В Unix система будет использовать пользовательские настройки из среды рабочего стола. На других платформах Qt::ToolButtonFollowStyle означает только значок.

Значение по умолчанию: Qt::ToolButtonIconOnly.

Функции доступа:

Qt::ToolButtonStyle toolButtonStyle() const
void setToolButtonStyle(Qt::ToolButtonStyle toolButtonStyle)

unifiedTitleAndToolBarOnMac : bool

Это свойство указывает, использует ли окно объединённый вид заголовка и панели инструментов на macOS.

Обратите внимание, что реализация Qt 5 имеет несколько ограничений по сравнению с Qt 4:

  • Использование в окнах с содержимым OpenGL не поддерживается. Это включает QGLWidget и QOpenGLWidget.
  • Использование пристыкованных или перемещаемых панелей инструментов может привести к ошибкам отрисовки и не рекомендуется

Это свойство было добавлено в Qt 5.2.

Функции доступа:

bool unifiedTitleAndToolBarOnMac() const
void setUnifiedTitleAndToolBarOnMac(bool set)

Документация функций-членов

QMainWindow::QMainWindow(QWidget *parent = nullptr, Qt::WindowFlags flags = ...)

Создаёт QMainWindow с заданным parent и указанными флагами виджета flags.

QMainWindow устанавливает флаг Qt::Window сам и, следовательно, всегда создаётся как виджет верхнего уровня.

[virtual] QMainWindow::~QMainWindow()

Уничтожает главное окно.

void QMainWindow::addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget)

Добавляет заданный dockwidget в указанную area.

void QMainWindow::addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget, Qt::Orientation orientation)

Добавляет dockwidget в заданную area в направлении, указанном orientation.

void QMainWindow::addToolBar(Qt::ToolBarArea area, QToolBar *toolbar)

Добавляет toolbar в указанную area в этом главном окне. toolbar размещается в конце текущего блока панели инструментов (т.е. строки). Если главное окно уже управляет toolbar, оно просто переместит панель инструментов в area.

См. такжеinsertToolBar(), addToolBarBreak(), и insertToolBarBreak().

void QMainWindow::addToolBar(QToolBar *toolbar)

Это перегруженная функция.

Эквивалентно вызову addToolBar(Qt::TopToolBarArea, toolbar)

QToolBar *QMainWindow::addToolBar(const QString &title)

Это перегруженная функция.

Создаёт объект QToolBar, устанавливает его заголовок окна в title и вставляет его в область верхней панели инструментов.

См. такжеsetWindowTitle().

void QMainWindow::addToolBarBreak(Qt::ToolBarArea area = Qt::TopToolBarArea)

Добавляет разрыв в строку инструментов в заданную область после всех других присутствующих объектов.

QWidget *QMainWindow::centralWidget() const

Возвращает центральный виджет для главного окна. Эта функция возвращает ноль, если центральный виджет не был задан.

См. также setCentralWidget().

[override virtual protected] void QMainWindow::contextMenuEvent(QContextMenuEvent *event)

Переопределено из QWidget::contextMenuEvent().

Qt::DockWidgetArea QMainWindow::corner(Qt::Corner corner) const

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

См. также setCorner().

[virtual] QMenu *QMainWindow::createPopupMenu()

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

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

Если вы хотите создать пользовательское всплывающее меню, переопределите эту функцию и верните вновь созданное всплывающее меню. Владение всплывающим меню передается вызывающей стороне.

См. также addDockWidget(), addToolBar() и menuBar().

Qt::DockWidgetArea QMainWindow::dockWidgetArea(QDockWidget *dockwidget) const

Возвращает Qt::DockWidgetArea для dockwidget. Если dockwidget не был добавлен в главное окно, эта функция возвращает Qt::NoDockWidgetArea.

См. также addDockWidget(), splitDockWidget() и Qt::DockWidgetArea.

[override virtual protected] bool QMainWindow::event(QEvent *event)

Переопределено из QWidget::event().

[signal] void QMainWindow::iconSizeChanged(const QSize &iconSize)

Этот сигнал испускается, когда изменяется размер значков, используемых в окне. Новый размер значка передаётся в iconSize.

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

См. также setIconSize().

void QMainWindow::insertToolBar(QToolBar *before, QToolBar *toolbar)

Вставляет toolbar в область, занимаемую before-панелью инструментов, так чтобы он отображался перед ней. Например, в обычной операции вывода слева направо это означает, что toolbar будет отображаться слева от панели инструментов, указанной before, в горизонтальной области панели инструментов.

См. также insertToolBarBreak(), addToolBar() и addToolBarBreak().

void QMainWindow::insertToolBarBreak(QToolBar *before)

Вставляет разрыв в строке инструментов перед панелью инструментов, указанной before.

QMenuBar *QMainWindow::menuBar() const

Возвращает строку меню для главного окна. Эта функция создаёт и возвращает пустую строку меню, если строки меню не существует.

Если вы хотите, чтобы все окна приложения Mac использовали одну строку меню, не используйте эту функцию для её создания, поскольку созданная здесь строка меню будет иметь это QMainWindow в качестве родительского элемента. Вместо этого вы должны создать строку меню без родительского элемента, которую можно будет затем использовать совместно со всеми окнами Mac. Создайте строку меню без родителя так:

QMenuBar *menuBar = new QMenuBar(0);

См. также setMenuBar().

QWidget *QMainWindow::menuWidget() const

Возвращает строку меню для главного окна. Эта функция возвращает null, если строка меню ещё не была создана.

Эта функция была представлена в Qt 4.2.

См. также setMenuWidget().

void QMainWindow::removeDockWidget(QDockWidget *dockwidget)

Удаляет dockwidget из макета главного окна и скрывает его. Обратите внимание, что dockwidget не удаляется.

void QMainWindow::removeToolBar(QToolBar *toolbar)

Удаляет toolbar из макета главного окна и скрывает его. Обратите внимание, что toolbar не удаляется.

void QMainWindow::removeToolBarBreak(QToolBar *before)

Удаляет разрыв в строке инструментов, ранее вставленный перед панелью инструментов, указанной before.

void QMainWindow::resizeDocks(const QList<QDockWidget *> &docks, const QList<int> &sizes, Qt::Orientation orientation)

Изменяет размеры виджетов причала в списке docks на соответствующие размеры в пикселях из списка sizes. Если orientation равен Qt::Horizontal, изменяет ширину, в противном случае изменяет высоту виджетов причала. Размеры будут изменены таким образом, чтобы соблюдались максимальные и минимальные размеры, и само QMainWindow не будет изменён. Любое дополнительное/отсутствующее пространство распределяется между виджетами в соответствии с относительным весом размеров.

Пример:

    resizeDocks({blueWidget, yellowWidget}, {20 , 40}, Qt::Horizontal);

Если синий и жёлтый виджеты вложены на одном уровне, они будут изменены так, что жёлтый виджет будет в два раза больше синего.

Если некоторые виджеты сгруппированы во вкладках, должен быть указан только один виджет на группу. Виджеты, не входящие в список, могут быть изменены, чтобы соответствовать ограничениям.

Эта функция была представлена в Qt 5.6.

bool QMainWindow::restoreDockWidget(QDockWidget *dockwidget)

Восстанавливает состояние dockwidget, если он создан после вызова restoreState(). Возвращает true если состояние было восстановлено; в противном случае возвращает false.

См. также restoreState() и saveState().

bool QMainWindow::restoreState(const QByteArray &state, int version = 0)

Восстанавливает состояние панелей инструментов и виджетов причала этого главного окна. Также восстанавливаются настройки углов. Номер version сравнивается с тем, который сохранён в state. Если они не совпадают, состояние главного окна остаётся неизменным, и эта функция возвращает false; в противном случае состояние восстанавливается, и эта функция возвращает true.

Для восстановления геометрии, сохранённой с помощью QSettings, можно использовать такой код:

void MainWindow::readSettings()
{
    QSettings settings("MyCompany", "MyApp");
    restoreGeometry(settings.value("myWidget/geometry").toByteArray());
    restoreState(settings.value("myWidget/windowState").toByteArray());
}

См. также saveState(), QWidget::saveGeometry(), QWidget::restoreGeometry() и restoreDockWidget().

QByteArray QMainWindow::saveState(int version = 0) const

Сохраняет текущее состояние панелей инструментов и виджетов причала этого главного окна. Это включает настройки углов, которые можно задать с помощью setCorner(). Номер version сохраняется как часть данных.

Свойство objectName используется для идентификации каждой QToolBar и QDockWidget. Вы должны убедиться, что это свойство уникально для каждой QToolBar и QDockWidget, которые вы добавляете в QMainWindow.

Для восстановления сохранённого состояния передайте возвращаемое значение и номер version в restoreState().

Для сохранения геометрии при закрытии окна вы можете реализовать обработчик события закрытия так:

void MyMainWindow::closeEvent(QCloseEvent *event)
{
    QSettings settings("MyCompany", "MyApp");
    settings.setValue("geometry", saveGeometry());
    settings.setValue("windowState", saveState());
    QMainWindow::closeEvent(event);
}

См. также restoreState(), QWidget::saveGeometry() и QWidget::restoreGeometry().

void QMainWindow::setCentralWidget(QWidget *widget)

Устанавливает заданный widget в качестве центрального виджета главного окна.

Примечание: QMainWindow принимает владение указателем widget и удаляет его в соответствующее время.

См. также centralWidget().

void QMainWindow::setCorner(Qt::Corner corner, Qt::DockWidgetArea area)

Устанавливает заданную область виджета причала area для указанного угла.

См. также corner().

void QMainWindow::setMenuBar(QMenuBar *menuBar)

Устанавливает строку меню для главного окна в menuBar.

Примечание: QMainWindow принимает владение указателем menuBar и удаляет его в соответствующее время.

См. также menuBar().

void QMainWindow::setMenuWidget(QWidget *menuBar)

Устанавливает строку меню для главного окна в menuBar.

QMainWindow принимает владение указателем menuBar и удаляет его в соответствующее время.

Эта функция была добавлена в Qt 4.2.

См. также menuWidget().

void QMainWindow::setStatusBar(QStatusBar *statusbar)

Устанавливает строку состояния для главного окна в statusbar.

Установка строки состояния в 0 удалит её из главного окна. Обратите внимание, что QMainWindow принимает владение указателем statusbar и удаляет его в соответствующее время.

См. также statusBar().

void QMainWindow::setTabPosition(Qt::DockWidgetAreas areas, QTabWidget::TabPosition tabPosition)

Устанавливает позицию вкладок для заданных областей док-виджетов areas на указанную tabPosition. По умолчанию все области док-виджетов отображают вкладки внизу.

Примечание: Опция VerticalTabs док-виджета переопределяет позиции вкладок, заданные этим методом.

Эта функция была добавлена в Qt 4.5.

См. также tabPosition() и setTabShape().

void QMainWindow::splitDockWidget(QDockWidget *first, QDockWidget *second, Qt::Orientation orientation)

Разделяет область, занимаемую док-виджетом first, на две части, перемещает first в первую часть и second во вторую часть.

orientation определяет способ разделения: Разделение Qt::Horizontal помещает второй док-виджет справа от первого; Разделение Qt::Vertical помещает второй док-виджет под первым.

Примечание: если first в данный момент находится в области док-виджетов с вкладками, second будет добавлен как новая вкладка, а не как сосед first. Это потому, что одна вкладка может содержать только один док-виджет.

Примечание: Qt::LayoutDirection влияет на порядок док-виджетов в двух частях разделённой области. При включении направления расположения справа налево размещение док-виджетов будет инвертировано.

См. также tabifyDockWidget(), addDockWidget() и removeDockWidget().

QStatusBar *QMainWindow::statusBar() const

Возвращает строку состояния для главного окна. Эта функция создаёт и возвращает пустую строку состояния, если она не существует.

См. также setStatusBar().

QTabWidget::TabPosition QMainWindow::tabPosition(Qt::DockWidgetArea area) const

Возвращает позицию вкладки для area.

Примечание: Опция VerticalTabs док-виджета переопределяет позиции вкладок, возвращаемые этой функцией.

Эта функция была добавлена в Qt 4.5.

См. также setTabPosition() и tabShape().

[signal] void QMainWindow::tabifiedDockWidgetActivated(QDockWidget *dockWidget)

Этот сигнал генерируется, когда активируется док-виджет с вкладками, при выборе вкладки. Активированный док-виджет передаётся в dockWidget.

Эта функция была добавлена в Qt 5.8.

См. также tabifyDockWidget() и tabifiedDockWidgets().

QList<QDockWidget *> QMainWindow::tabifiedDockWidgets(QDockWidget *dockwidget) const

Возвращает док-виджеты, которые объединены с вкладками вместе с dockwidget.

Эта функция была добавлена в Qt 4.5.

См. также tabifyDockWidget().

void QMainWindow::tabifyDockWidget(QDockWidget *first, QDockWidget *second)

Перемещает док-виджет second поверх док-виджета first, создавая область док-виджетов с вкладками в главном окне.

См. также tabifiedDockWidgets().

QWidget *QMainWindow::takeCentralWidget()

Удаляет центральный виджет из этого главного окна.

Владение удалённым виджетом передаётся вызывающей стороне.

Эта функция была добавлена в Qt 5.2.

Qt::ToolBarArea QMainWindow::toolBarArea(QToolBar *toolbar) const

Возвращает Qt::ToolBarArea для toolbar. Если toolbar не был добавлен в главное окно, эта функция возвращает Qt::NoToolBarArea.

См. также addToolBar(), addToolBarBreak() и Qt::ToolBarArea.

bool QMainWindow::toolBarBreak(QToolBar *toolbar) const

Возвращает, есть ли разрыв панели инструментов перед toolbar.

См. также addToolBarBreak() и insertToolBarBreak().

[signal] void QMainWindow::toolButtonStyleChanged(Qt::ToolButtonStyle toolButtonStyle)

Этот сигнал генерируется при изменении стиля, используемого для кнопок инструментов в окне. Новый стиль передаётся в toolButtonStyle.

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

См. также setToolButtonStyle().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qmainwindow.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API