Spec-Zone.ru › Qt 5.11

Класс QMdiArea

Виджет QMdiArea предоставляет область для отображения окон MDI. Подробнее...

Заголовок: #include <QMdiArea>
qmake: QT += widgets
С момента: Qt 4.3
Наследует: QAbstractScrollArea
  • Список всех членов, включая унаследованные

Открытые типы

перечисление AreaOption { DontMaximizeSubWindowOnActivation }
флаги AreaOptions
перечисление ViewMode { SubWindowView, TabbedView }
перечисление WindowOrder { CreationOrder, StackingOrder, ActivationHistoryOrder }

Свойства

  • activationOrder : WindowOrder
  • background : QBrush
  • documentMode : bool
  • tabPosition : QTabWidget::TabPosition
  • tabShape : QTabWidget::TabShape
  • tabsClosable : bool
  • tabsMovable : bool
  • viewMode : ViewMode
  • 3 свойства унаследованы от QAbstractScrollArea
  • 6 свойств унаследованы от QFrame
  • 59 свойств унаследованы от QWidget
  • 1 свойство унаследовано от QObject

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

QMdiArea(QWidget *parent = nullptr)
virtual ~QMdiArea()
QMdiArea::WindowOrder activationOrder() const
QMdiSubWindow * activeSubWindow() const
QMdiSubWindow * addSubWindow(QWidget *widget, Qt::WindowFlags windowFlags = ...)
QBrush background() const
QMdiSubWindow * currentSubWindow() const
bool documentMode() const
void removeSubWindow(QWidget *widget)
void setActivationOrder(QMdiArea::WindowOrder order)
void setBackground(const QBrush &background)
void setDocumentMode(bool enabled)
void setOption(QMdiArea::AreaOption option, bool on = true)
void setTabPosition(QTabWidget::TabPosition position)
void setTabShape(QTabWidget::TabShape shape)
void setTabsClosable(bool closable)
void setTabsMovable(bool movable)
void setViewMode(QMdiArea::ViewMode mode)
QList<QMdiSubWindow *> subWindowList(QMdiArea::WindowOrder order = CreationOrder) const
QTabWidget::TabPosition tabPosition() const
QTabWidget::TabShape tabShape() const
bool tabsClosable() const
bool tabsMovable() const
bool testOption(QMdiArea::AreaOption option) const
QMdiArea::ViewMode viewMode() const

Переопределённые открытые функции

virtual QSize minimumSizeHint() const override
virtual QSize sizeHint() const override
  • 20 открытых функций унаследовано от QAbstractScrollArea
  • 14 открытых функций унаследовано от QFrame
  • 214 открытых функций унаследовано от QWidget
  • 34 открытых функций унаследовано от QObject
  • 14 открытых функций унаследовано от QPaintDevice

Открытые слоты

void activateNextSubWindow()
void activatePreviousSubWindow()
void cascadeSubWindows()
void closeActiveSubWindow()
void closeAllSubWindows()
void setActiveSubWindow(QMdiSubWindow *window)
void tileSubWindows()
  • 19 открытых слотов унаследовано от QWidget
  • 1 открытый слот унаследовано от QObject

Сигналы

void subWindowActivated(QMdiSubWindow *window)
  • 3 сигнала унаследовано от QWidget
  • 2 сигнала унаследовано от QObject

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

виртуальный void childEvent(QChildEvent *childEvent) override
виртуальный bool event(QEvent *event) override
виртуальный bool eventFilter(QObject *object, QEvent *event) override
виртуальный void paintEvent(QPaintEvent *paintEvent) override
виртуальный void resizeEvent(QResizeEvent *resizeEvent) override
виртуальный void scrollContentsBy(int dx, int dy) override
виртуальный void showEvent(QShowEvent *showEvent) override
виртуальный void timerEvent(QTimerEvent *timerEvent) override
виртуальный bool viewportEvent(QEvent *event) override
  • 20 защищённых функций, унаследованных от QAbstractScrollArea
  • 4 защищённых функций, унаследованных от QFrame
  • 35 защищённых функций, унаследованных от QWidget
  • 9 защищённых функций, унаследованных от QObject
  • 1 защищённая функция, унаследованная от QPaintDevice

Защищённые слоты

виртуальный void setupViewport(QWidget *viewport) override
  • 1 защищённый слот, унаследованный от QWidget

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

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

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

Виджет QMdiArea предоставляет область для отображения окон MDI.

QMdiArea функционирует как менеджер окон MDI. Например, он отображает управляемые им окна и упорядочивает их в каскадном или плиточном режиме. QMdiArea обычно используется в качестве центрального виджета в QMainWindow для создания MDI-приложений, но также может быть размещён в любом макете. Следующий код добавляет область в главное окно:

    QMainWindow *mainWindow = new QMainWindow;
    mainWindow->setCentralWidget(mdiArea);

В отличие от менеджеров окон верхнего уровня, все флаги окна (Qt::WindowFlags) поддерживаются QMdiArea, при условии, что флаги поддерживаются текущей стилизованной частью. Если определённый флаг не поддерживается стилем (например, WindowShadeButtonHint), можно всё равно затенять окно с помощью showShaded().

Подъокна в QMdiArea — экземпляры QMdiSubWindow. Они добавляются в область MDI с помощью addSubWindow(). Обычно передаётся QWidget, который устанавливается как внутренний виджет, но также можно передать QMdiSubWindow напрямую. Класс наследуется от QWidget, и при программировании можно использовать тот же API, что и для обычных окон верхнего уровня. QMdiSubWindow также имеет поведение, специфичное для MDI-окон. Подробнее см. описание класса QMdiSubWindow.

Подъокно становится активным, когда получает фокус клавиатуры или когда вызывается setFocus(). Пользователь активирует окно обычным способом. Область MDI излучает сигнал subWindowActivated() при изменении активного окна, и функция activeSubWindow() возвращает активное подъокно.

Удобная функция subWindowList() возвращает список всех подъокон. Эта информация может быть использована, например, в всплывающем меню со списком окон.

Подъокна сортируются по текущему WindowOrder. Это используется для subWindowList() и для activateNextSubWindow() и activatePreviousSubWindow(). Также, оно используется при каскадировании или укладке окон с помощью cascadeSubWindows() и tileSubWindows().

QMdiArea предоставляет два встроенных стратегии макета для подъокон: cascadeSubWindows() и tileSubWindows(). Оба являются слотами и легко подключаются к пунктам меню.

Примечание: По умолчанию свойство полосы прокрутки для QMdiArea — Qt::ScrollBarAlwaysOff.

См. также QMdiSubWindow.

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

перечисление QMdiArea::AreaOptionфлаги QMdiArea::AreaOptions

Это перечисление описывает параметры, которые настраивают поведение QMdiArea.

Постоянная Значение Описание
QMdiArea::DontMaximizeSubWindowOnActivation 0x1 Когда активное подъокно максимизировано, по умолчанию поведение заключается в максимизации следующего подъокна, которое активируется. Установите этот параметр, если вы не хотите такого поведения.

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

перечисление QMdiArea::ViewMode

Это перечисление описывает режим отображения области; т.е. как будут отображаться подокна.

Постоянная Значение Описание
QMdiArea::SubWindowView 0 Отображение подъокон со рамками окон (по умолчанию).
QMdiArea::TabbedView 1 Отображение подъокон с вкладками в панели вкладок.

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

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

перечисление QMdiArea::WindowOrder

Указывает критерии для упорядочения списка дочерних окон, возвращаемых subWindowList(). Функции cascadeSubWindows() и tileSubWindows() следуют этому порядку при упорядочении окон.

Постоянная Значение Описание
QMdiArea::CreationOrder 0 Окна возвращаются в порядке их создания.
QMdiArea::StackingOrder 1 Окна возвращаются в порядке их стекирования, причём верхнее окно — последнее в списке.
QMdiArea::ActivationHistoryOrder 2 Окна возвращаются в порядке их активации.

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

END_OF_DOCUMENT_MARKER

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

activationOrder : WindowOrder

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

Это свойство задаёт порядок сортировки списка подокен, возвращаемых методом subWindowList(). По умолчанию используется порядок создания окон.

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

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

QMdiArea::WindowOrder activationOrder() const
void setActivationOrder(QMdiArea::WindowOrder order)

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

background : QBrush

Это свойство хранит кисть фона для рабочего пространства.

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

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

QBrush background() const
void setBackground(const QBrush &background)

documentMode : bool

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

Режим документа отключён по умолчанию.

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

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

bool documentMode() const
void setDocumentMode(bool enabled)

См. также QTabBar::documentMode и setViewMode().

tabPosition : QTabWidget::TabPosition

Это свойство хранит позицию вкладок в режиме отображения вкладок.

Возможные значения для этого свойства описаны в перечислении QTabWidget::TabPosition.

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

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

QTabWidget::TabPosition tabPosition() const
void setTabPosition(QTabWidget::TabPosition position)

См. также QTabWidget::TabPosition и setViewMode().

tabShape : QTabWidget::TabShape

Это свойство хранит форму вкладок в режиме отображения вкладок.

Возможные значения для этого свойства — QTabWidget::Rounded (по умолчанию) или QTabWidget::Triangular.

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

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

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

См. также QTabWidget::TabShape и setViewMode().

tabsClosable : bool

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

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

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

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

bool tabsClosable() const
void setTabsClosable(bool closable)

См. также QTabBar::tabsClosable и setViewMode().

tabsMovable : bool

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

Вкладки по умолчанию не перемещаются.

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

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

bool tabsMovable() const
void setTabsMovable(bool movable)

См. также QTabBar::movable и setViewMode().

viewMode : ViewMode

Это свойство определяет способ отображения подокен в QMdiArea.

По умолчанию используется режим SubWindowView для отображения подокен.

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

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

QMdiArea::ViewMode viewMode() const
void setViewMode(QMdiArea::ViewMode mode)

См. также ViewMode, setTabShape() и setTabPosition().

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

QMdiArea::QMdiArea(QWidget *parent = nullptr)

Конструирует пустую область MDI. parent передаётся в конструктор QWidget.

[virtual] QMdiArea::~QMdiArea()

Удаляет область MDI.

[slot] void QMdiArea::activateNextSubWindow()

Передаёт фокус клавиатуры другому окну в списке дочерних окон. Активированным окном будет следующее окно, определяемое текущим порядком активации.

См. также activatePreviousSubWindow() и QMdiArea::WindowOrder.

[slot] void QMdiArea::activatePreviousSubWindow()

Передаёт фокус клавиатуры другому окну в списке дочерних окон. Активированным окном будет предыдущее окно, определяемое текущим порядком активации.

См. также activateNextSubWindow() и QMdiArea::WindowOrder.

QMdiSubWindow *QMdiArea::activeSubWindow() const

Возвращает указатель на текущее активное подокно. Если активного окна нет, возвращается 0.

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

См. также setActiveSubWindow() и Qt::WindowState.

QMdiSubWindow *QMdiArea::addSubWindow(QWidget *widget, Qt::WindowFlags windowFlags = ...)

Добавляет widget как новое подокно в область MDI. Если windowFlags отличны от нуля, они переопределят флаги, установленные на виджете.

widget может быть либо QMdiSubWindow, либо другим QWidget (в этом случае область MDI создаст подокно и установит widget как внутренний виджет).

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

    QMdiArea mdiArea;
    QMdiSubWindow *subWindow1 = new QMdiSubWindow;
    subWindow1->setWidget(internalWidget1);
    subWindow1->setAttribute(Qt::WA_DeleteOnClose);
    mdiArea.addSubWindow(subWindow1);

    QMdiSubWindow *subWindow2 =
        mdiArea.addSubWindow(internalWidget2);

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

Возвращает QMdiSubWindow, который добавляется в область MDI.

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

[slot] void QMdiArea::cascadeSubWindows()

Располагает все дочерние окна в виде каскада.

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

[override virtual protected] void QMdiArea::childEvent(QChildEvent *childEvent)

Переопределено из QObject::childEvent().

[slot] void QMdiArea::closeActiveSubWindow()

Закрывает активное подокно.

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

[slot] void QMdiArea::closeAllSubWindows()

Закрывает все дочерние окна, отправляя QCloseEvent каждому окну. Вы можете получить сигналы subWindowActivated() от дочерних окон перед их закрытием (если область MDI активирует дочернее окно, когда другое закрывается).

Дочерние окна, которые игнорируют событие закрытия, останутся открытыми.

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

QMdiSubWindow *QMdiArea::currentSubWindow() const

Возвращает указатель на текущее дочернее окно или 0, если текущего дочернего окна нет.

Эта функция вернёт то же, что и activeSubWindow(), если приложение QApplication, содержащее QMdiArea, активно.

См. также activeSubWindow() и QApplication::activeWindow().

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

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

[override virtual protected] bool QMdiArea::eventFilter(QObject *object, QEvent *event)

[override virtual] QSize QMdiArea::minimumSizeHint() const

Переопределено из QAbstractScrollArea::minimumSizeHint().

[override virtual protected] void QMdiArea::paintEvent(QPaintEvent *paintEvent)

Переопределено из QAbstractScrollArea::paintEvent().

void QMdiArea::removeSubWindow(QWidget *widget)

Удаляет widget из области MDI. widget должен быть либо QMdiSubWindow, либо виджетом, являющимся внутренним виджетом дочернего окна. Обратите внимание, что widget никогда не удаляется непосредственно классом QMdiArea. Если передан QMdiSubWindow, его родитель устанавливается в 0, и он удаляется, но если передан внутренний виджет, дочерний виджет устанавливается в 0, но QMdiSubWindow не удаляется.

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

[override virtual protected] void QMdiArea::resizeEvent(QResizeEvent *resizeEvent)

Переопределено из QAbstractScrollArea::resizeEvent().

[override virtual protected] void QMdiArea::scrollContentsBy(int dx, int dy)

Переопределено из QAbstractScrollArea::scrollContentsBy().

[slot] void QMdiArea::setActiveSubWindow(QMdiSubWindow *window)

Активирует дочернее окно window. Если window равен 0, любое текущее активное окно деактивируется.

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

void QMdiArea::setOption(QMdiArea::AreaOption option, bool on = true)

Если on равно true, option включено в области MDI; в противном случае — выключено. См. AreaOption для эффекта каждого параметра.

См. также AreaOption и testOption().

[override virtual protected slot] void QMdiArea::setupViewport(QWidget *viewport)

Переопределено из QAbstractScrollArea::setupViewport().

Этот слот вызывается QAbstractScrollArea после вызова setViewport(). Переопределите эту функцию в подклассе QMdiArea, чтобы инициализировать новый viewport перед его использованием.

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

[override virtual protected] void QMdiArea::showEvent(QShowEvent *showEvent)

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

[override virtual] QSize QMdiArea::sizeHint() const

Переопределено из QAbstractScrollArea::sizeHint().

[signal] void QMdiArea::subWindowActivated(QMdiSubWindow *window)

QMdiArea испускает этот сигнал после активации window. Когда window равен 0, QMdiArea только что деактивировал последнее активное окно, и нет активных окон на рабочем пространстве.

См. также QMdiArea::activeSubWindow().

QList<QMdiSubWindow *> QMdiArea::subWindowList(QMdiArea::WindowOrder order = CreationOrder) const

Возвращает список всех дочерних окон в области MDI. Если order равен CreationOrder (по умолчанию), окна упорядочены в соответствии с порядком их добавления в рабочее пространство. Если order равен StackingOrder, окна перечислены в порядке их расположения, причём верхнее окно — это последний элемент в списке. Если order равен ActivationHistoryOrder, окна перечислены в соответствии с их последней историей активации.

См. также WindowOrder.

bool QMdiArea::testOption(QMdiArea::AreaOption option) const

Возвращает true если option включено; в противном случае возвращает false.

См. также AreaOption и setOption().

[slot] void QMdiArea::tileSubWindows()

Располагает все дочерние окна в виде плитки.

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

[override virtual protected] void QMdiArea::timerEvent(QTimerEvent *timerEvent)

Переопределено из QObject::timerEvent().

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

Переопределено из QAbstractScrollArea::viewportEvent().

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

Spec-Zone.ru

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