Класс QMainWindow
Класс QMainWindow предоставляет главное окно приложения. Подробнее...
| Заголовок: | #include <QMainWindow> |
| qmake: | QT += widgets |
| Наследуется от: | QWidget |
Публичные типы
| Перечисление | DockOption { AnimatedDocks, AllowNestedDocks, AllowTabbedDocks, ForceTabbedDocks, VerticalTabs, GroupedDragging } |
| Флаги | DockOptions |
Свойства
|
|
Публичные функции
| QMainWindow(QWidget *parent = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags()) | |
| ~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() |
| 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(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 |
- 211 public functions inherited from QWidget
- 31 public functions inherited from QObject
- 14 public functions inherited from QPaintDevice
Public Slots
| void | setAnimated(bool enabled) |
| void | setDockNestingEnabled(bool enabled) |
| void | setUnifiedTitleAndToolBarOnMac(bool set) |
Сигналы
| void | iconSizeChanged(const QSize &iconSize) |
| void | toolButtonStyleChanged(Qt::ToolButtonStyle toolButtonStyle) |
Реализованные защищённые функции
| virtual void | contextMenuEvent(QContextMenuEvent *event) |
| virtual bool | event(QEvent *event) |
- 35 защищённых функций унаследованы от QWidget
- 9 защищённых функций унаследованы от QObject
- 1 защищённая функция унаследована от QPaintDevice
Дополнительные унаследованные члены
- 5 статических публичных членов унаследованы от QWidget
- 11 статических публичных членов унаследованы от QObject
- 35 защищённых функций унаследованы от QWidget
- 9 защищённых функций унаследованы от QObject
- 1 защищённая функция унаследована от QPaintDevice
- 1 защищённый слот унаследован от QWidget
Подробное описание
Класс QMainWindow предоставляет главное окно приложения.
Qt Фреймворк Главного Окна
Главное окно предоставляет основу для построения пользовательского интерфейса приложения. Qt использует QMainWindow и его родственные классы для управления главным окном. QMainWindow имеет собственную компоновку, в которую можно добавлять QToolBars, QDockWidgets, QMenuBar и QStatusBar. Область центра может быть занята любым типом виджета. Вы можете увидеть изображение компоновки ниже.
Примечание: Создание главного окна без центрального виджета не поддерживается. Вам необходим центральный виджет, даже если это просто заполнитель.
Создание Компонентов Главного Окна
Центральный виджет обычно будет стандартным виджетом Qt, таким как QTextEdit или QGraphicsView. Для продвинутых приложений также могут использоваться пользовательские виджеты. Вы устанавливаете центральный виджет с setCentralWidget().
Главные окна имеют либо однодокументный (SDI) или многодокументный (MDI) интерфейс. Вы создаёте MDI-приложения в Qt, используя QMdiArea в качестве центрального виджета.
Теперь мы рассмотрим каждый из других виджетов, которые можно добавить в главное окно. Мы даём примеры того, как их создать и добавить.
Создание Меню
Qt реализует меню в классе QMenu, а QMainWindow хранит их в QMenuBar. QActions добавляются в меню, которые отображаются в виде пунктов меню.
Вы можете добавить новые меню в строку меню главного окна, вызвав 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 и Пример Меню.
Документация по типам членов
enum QMainWindow::DockOptionflags 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. Плохо работает, если у некоторых QDockWidget есть ограничения на область, в которой они разрешены. (Это значение перечисления было добавлено в Qt 5.6.) |
Эти параметры контролируют только то, как плавающие панели могут быть прикреплены в QMainWindow. Они не переупорядочивают плавающие панели для соответствия заданным параметрам. Поэтому их следует установить до добавления каких-либо плавающих панелей в главное окно. Исключение составляют параметры AnimatedDocks и VerticalTabs, которые могут быть установлены в любое время.
Это перечисление было введено или изменено в Qt 4.3.
Тип DockOptions является псевдонимом для QFlags<DockOption>. Он хранит логическое ИЛИ сочетание значений DockOption.
Документация свойств
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.
Функции доступа:
| DockOptions | dockOptions() const |
| void | setDockOptions(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 = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags())
Создаёт QMainWindow с заданным parent и указанными флагами виджета flags.
QMainWindow устанавливает флаг Qt::Window сам и, следовательно, всегда создаётся как виджет верхнего уровня.
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().
[virtual protected] void QMainWindow::contextMenuEvent(QContextMenuEvent *event)
Переопределено из QWidget::contextMenuEvent().
Qt::DockWidgetArea QMainWindow::corner(Qt::Corner corner) const
Возвращает область виджета плавающей панели, занимающую указанный угол corner.
См. также setCorner().
[virtual] QMenu *QMainWindow::createPopupMenu()
Возвращает контекстное меню, содержащее флажковые пункты для панелей инструментов и виджетов плавающей панели, присутствующих в главном окне. Если панелей инструментов и виджетов плавающей панели нет, эта функция возвращает нулевой указатель.
По умолчанию эта функция вызывается главным окном, когда пользователь активирует контекстное меню, обычно щелкнув правой кнопкой мыши на панели инструментов или виджете плавающей панели.
Если вы хотите создать пользовательское контекстное меню, переопределите эту функцию и верните созданное контекстное меню. Владение контекстным меню передаётся вызывающей стороне.
См. также addDockWidget(), addToolBar() и menuBar().
Qt::DockWidgetArea QMainWindow::dockWidgetArea(QDockWidget *dockwidget) const
Возвращает Qt::DockWidgetArea для dockwidget. Если dockwidget не был добавлен в главное окно, эта функция возвращает Qt::NoDockWidgetArea.
См. также addDockWidget(), splitDockWidget() и Qt::DockWidgetArea.
[virtual protected] bool QMainWindow::event(QEvent *event)
Переопределено из QObject::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. Если они не совпадают, состояние главного окна остаётся неизменным, и эта функция возвращает 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(). Номер версии сохраняется как часть данных.
Свойство objectName используется для идентификации каждой панели инструментов QToolBar и виджета плавающей панели QDockWidget. Вы должны убедиться, что это свойство уникально для каждой панели инструментов QToolBar и виджета плавающей панели QDockWidget, которые вы добавляете в QMainWindow.
Чтобы восстановить сохранённое состояние, передайте возвращаемое значение и номер версии в 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().
END_OF_DOCUMENT_MARKERvoid 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().
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/archives/qt-5.6/qmainwindow.html