Spec-Zone.ru › Qt 5.9

Класс QMdiSubWindow

Класс QMdiSubWindow предоставляет класс подокна для QMdiArea. Подробнее...

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

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

перечисление SubWindowOption { RubberBandResize, RubberBandMove }
флаги SubWindowOptions

Свойства

  • keyboardPageStep : int
  • keyboardSingleStep : int
  • 59 свойств унаследовано от QWidget
  • 1 свойство унаследовано от QObject

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

QMdiSubWindow(QWidget *parent = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags())
~QMdiSubWindow()
bool isShaded() const
int keyboardPageStep() const
int keyboardSingleStep() const
QMdiArea * mdiArea() const
void setKeyboardPageStep(int step)
void setKeyboardSingleStep(int step)
void setOption(SubWindowOption option, bool on = true)
void setSystemMenu(QMenu *systemMenu)
void setWidget(QWidget *widget)
QMenu * systemMenu() const
bool testOption(SubWindowOption option) const
QWidget * widget() const

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

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

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

void showShaded()
void showSystemMenu()
  • 19 открытых слотов унаследовано от QWidget
  • 1 открытый слот унаследовано от QObject

Сигналы

void aboutToActivate()
void windowStateChanged(Qt::WindowStates oldState, Qt::WindowStates newState)
  • 3 сигнала унаследовано от QWidget
  • 2 сигнала унаследовано от QObject

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

virtual void changeEvent(QEvent *changeEvent)
virtual void childEvent(QChildEvent *childEvent)
virtual void closeEvent(QCloseEvent *closeEvent)
virtual void contextMenuEvent(QContextMenuEvent *contextMenuEvent)
virtual bool event(QEvent *event)
virtual bool eventFilter(QObject *object, QEvent *event)
virtual void focusInEvent(QFocusEvent *focusInEvent)
virtual void focusOutEvent(QFocusEvent *focusOutEvent)
virtual void hideEvent(QHideEvent *hideEvent)
virtual void keyPressEvent(QKeyEvent *keyEvent)
virtual void leaveEvent(QEvent *leaveEvent)
virtual void mouseDoubleClickEvent(QMouseEvent *mouseEvent)
virtual void mouseMoveEvent(QMouseEvent *mouseEvent)
virtual void mousePressEvent(QMouseEvent *mouseEvent)
virtual void mouseReleaseEvent(QMouseEvent *mouseEvent)
virtual void moveEvent(QMoveEvent *moveEvent)
virtual void paintEvent(QPaintEvent *paintEvent)
virtual void resizeEvent(QResizeEvent *resizeEvent)
virtual void showEvent(QShowEvent *showEvent)
virtual void timerEvent(QTimerEvent *timerEvent)
  • 35 защищённых функций унаследовано от QWidget
  • 9 защищённых функций унаследовано от QObject
  • 1 защищённая функция унаследовано от QPaintDevice

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

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

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

Класс QMdiSubWindow предоставляет класс подокна для QMdiArea.

QMdiSubWindow представляет собой окно верхнего уровня в QMdiArea и состоит из строки заголовка с элементами оформления окна, внутреннего виджета и (в зависимости от текущего стиля) рамки окна и маркера изменения размера. QMdiSubWindow имеет собственную компоновку, которая состоит из строки заголовка и центральной области для внутреннего виджета.

Наиболее распространённый способ создания QMdiSubWindow — вызов QMdiArea::addSubWindow() с внутренним виджетом в качестве аргумента. Вы также можете создать под окно самостоятельно и установить внутренний виджет, вызвав setWidget().

При программировании с под окнами вы используете тот же API, что и с обычными окнами верхнего уровня (например, вы можете вызывать функции, такие как show(), hide(), showMaximized() и setWindowTitle()).

Обработка под окон

QMdiSubWindow также поддерживает поведение, специфичное для под окон в области MDI.

По умолчанию каждое QMdiSubWindow отображается внутри области просмотра MDI при перемещении, но также можно указать поведение прозрачного перемещения и изменения размера, где только контур под окна обновляется во время этих операций. Функция setOption() используется для включения этого поведения.

Функция isShaded() определяет, затенёно ли в данный момент под окно (т. е. окно свёрнуто так, что видна только строка заголовка). Для перехода в затенённый режим вызовите showShaded(). QMdiSubWindow излучает сигнал windowStateChanged() всякий раз, когда состояние окна изменяется (например, когда окно сворачивается или восстанавливается). Он также излучает aboutToActivate() перед активацией.

В режиме взаимодействия с клавиатурой окна перемещаются и изменяются размерами с помощью клавиатуры. Вы можете перейти в этот режим через системное меню окна. Свойства keyboardSingleStep и keyboardPageStep управляют расстоянием, на которое перемещается или изменяется размер виджета для каждого события нажатия клавиши. Когда нажата клавиша Shift, используется шаг страницы; в противном случае используется шаг.

Вы также можете изменить активное окно с помощью клавиатуры. Нажав одновременно клавиши Ctrl и Tab, будет активировано следующее (в соответствии с текущим WindowOrder) под окно. Нажав одновременно Ctrl, Shift и Tab, вы активируете предыдущее окно. Это эквивалентно вызову activateNextSubWindow() и activatePreviousSubWindow(). Обратите внимание, что эти сочетания клавиш переопределяют глобальные сочетания клавиш, но не сочетания клавиш QMdiArea.

См. также QMdiArea.

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

enum QMdiSubWindow::SubWindowOptionflags QMdiSubWindow::SubWindowOptions

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

Константа Значение Описание
QMdiSubWindow::RubberBandResize 0x4 Если вы включите этот параметр, для представления контура под окна будет использоваться резиновая полоса, и пользователь будет изменять её размер, а не само под окно. В результате под окно сохранит своё исходное положение и размер до завершения операции изменения размера, после чего ему будет отправлен единственный QResizeEvent. По умолчанию этот параметр отключён.
QMdiSubWindow::RubberBandMove 0x8 Если вы включите этот параметр, для представления контура под окна будет использоваться резиновая полоса, и пользователь будет перемещать её, а не само под окно. В результате под окно останется в своём исходном положении до завершения операции перемещения, после чего в окно будет отправлен QMoveEvent. По умолчанию этот параметр отключён.

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

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

keyboardPageStep : int

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

Когда вы находитесь в режиме взаимодействия с клавиатурой, вы можете использовать клавиши со стрелками и страницы для перемещения или изменения размера окна. Это свойство управляет клавишами страниц. Обычно в режим взаимодействия с клавиатурой можно перейти, выбрав в меню под окна пункт «Изменение размера» или «Перемещение».

Значение по умолчанию для шага страницы клавиатуры — 20 пикселей.

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

int keyboardPageStep() const
void setKeyboardPageStep(int step)

См. также keyboardSingleStep.

keyboardSingleStep : int

устанавливает расстояние, на которое виджет должен перемещаться или изменять размер при использовании клавиш со стрелками на клавиатуре.

Когда вы находитесь в режиме взаимодействия с клавиатурой, вы можете использовать клавиши со стрелками и страницы для перемещения или изменения размера окна. Это свойство управляет клавишами со стрелками. Обычно в режим взаимодействия с клавиатурой можно перейти, выбрав в меню под окна пункт «Изменение размера» или «Перемещение».

Значение по умолчанию для шага клавиатуры — 5 пикселей.

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

int keyboardSingleStep() const
void setKeyboardSingleStep(int step)

См. также keyboardPageStep.

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

QMdiSubWindow::QMdiSubWindow(QWidget *parent = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags())

Создаёт новый виджет QMdiSubWindow. Аргументы parent и flags передаются конструктору QWidget.

Вместо использования addSubWindow(), можно также просто использовать setParent(), когда вы добавляете под окно в QMdiArea.

Обратите внимание, что только QMdiSubWindow могут быть установлены как дочерние элементы QMdiArea; например, вы не можете написать:

//bad code
QMdiArea mdiArea;
QTextEdit editor(&mdiArea); // invalid child widget

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

QMdiSubWindow::~QMdiSubWindow()

Уничтожает под окно.

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

aboutToActivate() void QMdiSubWindow::aboutToActivate()

QMdiSubWindow излучает этот сигнал сразу перед активацией. После активации под окна, QMdiArea, управляющий под окном, также излучит сигнал subWindowActivated().

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

changeEvent(QEvent *changeEvent) void QMdiSubWindow::changeEvent(QEvent *changeEvent)

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

childEvent(QChildEvent *childEvent) void QMdiSubWindow::childEvent(QChildEvent *childEvent)

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

closeEvent(QCloseEvent *closeEvent) void QMdiSubWindow::closeEvent(QCloseEvent *closeEvent)

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

contextMenuEvent(QContextMenuEvent *contextMenuEvent) void QMdiSubWindow::contextMenuEvent(QContextMenuEvent *contextMenuEvent)

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

event(QEvent *event) bool QMdiSubWindow::event(QEvent *event)

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

eventFilter(QObject *object, QEvent *event) bool QMdiSubWindow::eventFilter(QObject *object, QEvent *event)

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

focusInEvent(QFocusEvent *focusInEvent) void QMdiSubWindow::focusInEvent(QFocusEvent *focusInEvent)

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

[virtual protected] void QMdiSubWindow::focusOutEvent(QFocusEvent *focusOutEvent)

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

[virtual protected] void QMdiSubWindow::hideEvent(QHideEvent *hideEvent)

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

bool QMdiSubWindow::isShaded() const

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

Окно затенённое, если оно свёрнуто так, что видна только строка заголовка.

[virtual protected] void QMdiSubWindow::keyPressEvent(QKeyEvent *keyEvent)

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

[virtual protected] void QMdiSubWindow::leaveEvent(QEvent *leaveEvent)

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

QMdiArea *QMdiSubWindow::mdiArea() const

Возвращает область, содержащую это подокно, или 0, если таковой нет.

Эта функция была добавлена в Qt 4.4.

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

[virtual] QSize QMdiSubWindow::minimumSizeHint() const

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

[virtual protected] void QMdiSubWindow::mouseDoubleClickEvent(QMouseEvent *mouseEvent)

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

[virtual protected] void QMdiSubWindow::mouseMoveEvent(QMouseEvent *mouseEvent)

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

[virtual protected] void QMdiSubWindow::mousePressEvent(QMouseEvent *mouseEvent)

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

[virtual protected] void QMdiSubWindow::mouseReleaseEvent(QMouseEvent *mouseEvent)

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

[virtual protected] void QMdiSubWindow::moveEvent(QMoveEvent *moveEvent)

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

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

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

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

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

Предупреждение: При максимизации или восстановлении подокна вызов этой функции может иметь недопустимое значение QResizeEvent::oldSize().

void QMdiSubWindow::setOption(SubWindowOption option, bool on = true)

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

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

void QMdiSubWindow::setSystemMenu(QMenu *systemMenu)

Устанавливает systemMenu в качестве текущего системного меню для этого подокна.

По умолчанию каждое QMdiSubWindow имеет стандартное системное меню.

QActions для системного меню, созданного QMdiSubWindow, будут автоматически обновляться в зависимости от текущего состояния окна; например, действие минимизации будет отключено после минимизации окна.

QActions, добавленные пользователем, не обновляются QMdiSubWindow.

QMdiSubWindow принимает владение systemMenu; вам не нужно его удалять. Любые существующие меню будут удалены.

См. также systemMenu() и showSystemMenu().

void QMdiSubWindow::setWidget(QWidget *widget)

Устанавливает widget в качестве внутреннего виджета этого подокна. Внутренний виджет отображается в центре подокна под строкой заголовка.

QMdiSubWindow временно принимает владение widget; вам не нужно его удалять. Любой существующий внутренний виджет будет удален и переродится в окне корня.

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

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

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

[slot] void QMdiSubWindow::showShaded()

Вызов этой функции переводит подокно в затенённый режим. Когда подокно затенённое, видна только строка заголовка.

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

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

[slot] void QMdiSubWindow::showSystemMenu()

Отображает системное меню под иконкой системного меню в строке заголовка.

См. также setSystemMenu() и systemMenu().

[virtual] QSize QMdiSubWindow::sizeHint() const

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

QMenu *QMdiSubWindow::systemMenu() const

Возвращает указатель на текущее системное меню или ноль, если системное меню не установлено. QMdiSubWindow предоставляет системное меню по умолчанию, но вы также можете установить меню с помощью setSystemMenu().

См. также setSystemMenu() и showSystemMenu().

bool QMdiSubWindow::testOption(SubWindowOption option) const

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

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

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

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

QWidget *QMdiSubWindow::widget() const

Возвращает текущий внутренний виджет.

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

[signal] void QMdiSubWindow::windowStateChanged(Qt::WindowStates oldState, Qt::WindowStates newState)

QMdiSubWindow испускает этот сигнал после изменения состояния окна. oldState — состояние окна до изменения, а newState — новое, текущее состояние.

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

Spec-Zone.ru

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