Spec-Zone.ru › Qt 5.11

Класс 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 = nullptr, Qt::WindowFlags flags = ...)
виртуальный ~QMdiSubWindow()
bool isShaded() const
int keyboardPageStep() const
int keyboardSingleStep() const
QMdiArea * mdiArea() const
void setKeyboardPageStep(int step)
void setKeyboardSingleStep(int step)
void setOption(QMdiSubWindow::SubWindowOption option, bool on = true)
void setSystemMenu(QMenu *systemMenu)
void setWidget(QWidget *widget)
QMenu * systemMenu() const
bool testOption(QMdiSubWindow::SubWindowOption option) const
QWidget * widget() const

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

виртуальный QSize minimumSizeHint() const override
виртуальный QSize sizeHint() const override
  • 214 открытых функций унаследовано от QWidget
  • 34 открытых функции унаследовано от 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

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

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

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

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

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

Класс 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.

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

перечисление QMdiSubWindow::SubWindowOptionфлаги QMdiSubWindow::SubWindowOptions

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

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

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

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

keyboardPageStep : int

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

В режиме интерактивного управления клавиатурой вы можете использовать стрелки и клавиши PageUp/PageDown для перемещения или изменения размера окна. Это свойство управляет клавишами PageUp/PageDown. Обычно режим интерактивного управления клавиатурой включается через меню подокна, выбрав "Изменить размер" или "Переместить".

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

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

int keyboardPageStep() const
void setKeyboardPageStep(int step)

См. также keyboardSingleStep.

keyboardSingleStep : int

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

В режиме интерактивного управления клавиатурой вы можете использовать стрелки и клавиши PageUp/PageDown для перемещения или изменения размера окна. Это свойство управляет стрелками. Обычно режим интерактивного управления клавиатурой включается через меню подокна, выбрав "Изменить размер" или "Переместить".

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

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

int keyboardSingleStep() const
void setKeyboardSingleStep(int step)

См. также keyboardPageStep.

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

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

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

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

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

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

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

[virtual] QMdiSubWindow::~QMdiSubWindow()

Удаляет подокно.

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

[signal] void QMdiSubWindow::aboutToActivate()

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

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

[override virtual protected] void QMdiSubWindow::changeEvent(QEvent *changeEvent)

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

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

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

[override virtual protected] void QMdiSubWindow::closeEvent(QCloseEvent *closeEvent)

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

[override virtual protected] void QMdiSubWindow::contextMenuEvent(QContextMenuEvent *contextMenuEvent)

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

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

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

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

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

[override virtual protected] void QMdiSubWindow::focusInEvent(QFocusEvent *focusInEvent)

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

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

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

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

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

bool QMdiSubWindow::isShaded() const

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

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

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

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

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

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

QMdiArea *QMdiSubWindow::mdiArea() const

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

void QMdiSubWindow::setSystemMenu(QMenu *systemMenu)

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

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

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

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

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

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

void QMdiSubWindow::setWidget(QWidget *widget)

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

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

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

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

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

[slot] void QMdiSubWindow::showShaded()

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

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

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

[slot] void QMdiSubWindow::showSystemMenu()

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

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

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

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

QMenu *QMdiSubWindow::systemMenu() const

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

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

bool QMdiSubWindow::testOption(QMdiSubWindow::SubWindowOption option) const

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

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

[override 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/archives/qt-5.11/qmdisubwindow.html

Spec-Zone.ru

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