Spec-Zone.ru › Qt 5.11

Класс 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
  • 34 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

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

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

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

  • 1 публичная переменная унаследована от QObject
  • 5 статических публичных членов унаследованы от QWidget
  • 10 статических публичных членов унаследованы от QObject
  • 35 защищённых функций унаследованы от QWidget
  • 9 защищённых функций унаследованы от QObject
  • 1 защищённая функция унаследована от QPaintDevice
  • 1 защищённый слот унаследован от QWidget
  • 2 защищённых переменных унаследованы от QObject
  • 1 защищённый тип унаследован от QPaintDevice

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

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

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

Главное окно предоставляет фреймворк для создания пользовательского интерфейса приложения. Qt предоставляет QMainWindow и его родственные классы для управления главным окном. QMainWindow имеет собственную компоновку, к которой вы можете добавить QToolBars, QDockWidgets, 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)

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

QWidget *QMainWindow::centralWidget() const

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

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

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

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

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

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

См. также 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)

Восстанавливает state панелей инструментов и док-виджетов этого главного окна. Также восстанавливаются параметры угла. Номер 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.

См. также 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().

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().

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/archives/qt-5.11/qmainwindow.html

Spec-Zone.ru

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