Класс QMdiSubWindow
Класс QMdiSubWindow предоставляет класс подокна для QMdiArea. Подробнее...
| Заголовок: | #include <QMdiSubWindow> |
| qmake: | QT += widgets |
| С тех пор: | Qt 4.3 |
| Наследует: | QWidget |
Открытые типы
| перечисление | SubWindowOption { RubberBandResize, RubberBandMove } |
| флаги | SubWindowOptions |
Свойства
- keyboardPageStep : int
- keyboardSingleStep : int
Открытые функции
| 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() |
Сигналы
| void | aboutToActivate() |
| void | windowStateChanged(Qt::WindowStates oldState, Qt::WindowStates newState) |
Переопределённые защищённые функции
| 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