Spec-Zone.ru › Qt 5.9

Класс 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 = 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
  • 214 public functions inherited from QWidget
  • 32 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)
  • 19 public slots inherited from QWidget
  • 1 public slot inherited from QObject

Signals

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

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

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. 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 и Пример Меню.

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

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. Не работает должным образом, если у некоторых QDockWidgets есть ограничения в отношении области, в которой они разрешены. (Это значение перечисления было добавлено в 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 после всех других присутствующих объектов.

END_OF_DOCUMENT_MARKER ```

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)

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

[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.9/qmainwindow.html

Spec-Zone.ru

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