Spec-Zone.ru › Qt 5.6

Класс 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
  • 58 свойств унаследованы от QWidget
  • 1 свойство унаследовано от QObject

Общедоступные функции

QMdiArea(QWidget *parent = Q_NULLPTR)
~QMdiArea()
WindowOrder activationOrder() const
QMdiSubWindow * activeSubWindow() const
QMdiSubWindow * addSubWindow(QWidget *widget, Qt::WindowFlags windowFlags = Qt::WindowFlags())
QBrush background() const
QMdiSubWindow * currentSubWindow() const
bool documentMode() const
void removeSubWindow(QWidget *widget)
void setActivationOrder(WindowOrder order)
void setBackground(const QBrush &background)
void setDocumentMode(bool enabled)
void setOption(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(ViewMode mode)
QList<QMdiSubWindow *> subWindowList(WindowOrder order = CreationOrder) const
QTabWidget::TabPosition tabPosition() const
QTabWidget::TabShape tabShape() const
bool tabsClosable() const
bool tabsMovable() const
bool testOption(AreaOption option) const
ViewMode viewMode() const

Реализованные публичные функции

виртуальный QSize minimumSizeHint() const
виртуальный QSize sizeHint() const
  • 20 публичных функций, унаследованных от QAbstractScrollArea
  • 14 публичных функций, унаследованных от QFrame
  • 211 публичных функций, унаследованных от QWidget
  • 31 публичных функций, унаследованных от QObject
  • 14 публичных функций, унаследованных от QPaintDevice

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

void активироватьСледующееПодОкно()
void активироватьПредыдущееПодОкно()
void каскадироватьПодОкна()
void закрытьАктивноеПодОкно()
void закрытьВсеПодОкна()
void установитьАктивноеПодОкно(QMdiSubWindow *window)
void разложитьПодОкна()
  • 19 публичных слотов, унаследованных от QWidget
  • 1 публичный слот, унаследованный от QObject

Сигналы

void подОкноАктивировано(QMdiSubWindow *window)
  • 3 сигнала, унаследованных от QWidget
  • 2 сигнала, унаследованных от QObject

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

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

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

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

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

  • 5 статических публичных членов, унаследованных от QWidget
  • 11 статических публичных членов, унаследованных от QObject
  • 20 защищённых функций, унаследованных от QAbstractScrollArea
  • 4 защищённых функции, унаследованных от QFrame
  • 35 защищённых функций, унаследованных от QWidget
  • 9 защищённых функций, унаследованных от 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() возвращает список всех подoкон. Эта информация может быть использована, например, в всплывающем меню, содержащем список окон.

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

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

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

См. также QMdiSubWindow.

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

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

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

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

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

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

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

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

Это перечисление было введено или изменено в 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.

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

WindowOrder activationOrder() const
void setActivationOrder(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.

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

ViewMode viewMode() const
void setViewMode(ViewMode mode)

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

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

QMdiArea::QMdiArea(QWidget *parent = Q_NULLPTR)

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

QMdiArea::~QMdiArea()

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

void QMdiArea::activateNextSubWindow()

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

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

void QMdiArea::activatePreviousSubWindow()

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

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

QMdiSubWindow *QMdiArea::activeSubWindow() const

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

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

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

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

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

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

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

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

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

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

void QMdiArea::cascadeSubWindows()

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

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

void QMdiArea::childEvent(QChildEvent *childEvent)

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

void QMdiArea::closeActiveSubWindow()

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

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

[slot] void QMdiArea::closeAllSubWindows()

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

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

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

QMdiSubWindow *QMdiArea::currentSubWindow() const

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

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

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

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

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

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

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

[virtual] QSize QMdiArea::minimumSizeHint() const

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

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

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

void QMdiArea::removeSubWindow(QWidget *widget)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[virtual] QSize QMdiArea::sizeHint() const

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

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

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

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

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

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

См. также WindowOrder.

bool QMdiArea::testOption(AreaOption option) const

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

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

[slot] void QMdiArea::tileSubWindows()

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

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

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

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

[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.6/qmdiarea.html

Spec-Zone.ru

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