QMdiSubWindow Class
QMdiSubWindow クラスは、QMdiArea 用のサブウィンドウ・クラスを提供します。詳細...
ヘッダー | #include <QMdiSubWindow> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
継承: | QWidget |
パブリックな型
enum | SubWindowOption { RubberBandResize, RubberBandMove } |
flags | SubWindowOptions |
プロパティ
- keyboardPageStep : int
- keyboardSingleStep : int
パブリック関数
QMdiSubWindow(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()) | |
virtual | ~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 |
再実装パブリック関数
virtual QSize | minimumSizeHint() const override |
virtual QSize | sizeHint() const override |
パブリック・スロット
void | showShaded() |
void | showSystemMenu() |
シグナル
void | aboutToActivate() |
void | windowStateChanged(Qt::WindowStates oldState, Qt::WindowStates newState) |
再実装された保護された関数
virtual void | changeEvent(QEvent *changeEvent) override |
virtual void | childEvent(QChildEvent *childEvent) override |
virtual void | closeEvent(QCloseEvent *closeEvent) override |
virtual void | contextMenuEvent(QContextMenuEvent *contextMenuEvent) override |
virtual bool | event(QEvent *event) override |
virtual bool | eventFilter(QObject *object, QEvent *event) override |
virtual void | focusInEvent(QFocusEvent *focusInEvent) override |
virtual void | focusOutEvent(QFocusEvent *focusOutEvent) override |
virtual void | hideEvent(QHideEvent *hideEvent) override |
virtual void | keyPressEvent(QKeyEvent *keyEvent) override |
virtual void | leaveEvent(QEvent *leaveEvent) override |
virtual void | mouseDoubleClickEvent(QMouseEvent *mouseEvent) override |
virtual void | mouseMoveEvent(QMouseEvent *mouseEvent) override |
virtual void | mousePressEvent(QMouseEvent *mouseEvent) override |
virtual void | mouseReleaseEvent(QMouseEvent *mouseEvent) override |
virtual void | moveEvent(QMoveEvent *moveEvent) override |
virtual void | paintEvent(QPaintEvent *paintEvent) override |
virtual void | resizeEvent(QResizeEvent *resizeEvent) override |
virtual void | showEvent(QShowEvent *showEvent) override |
virtual void | timerEvent(QTimerEvent *timerEvent) override |
詳細説明
QMdiSubWindow は、QMdiArea のトップレベルのウィンドウを表し、ウィンドウの装飾を持つタイトル バー、内部ウィジェット、および(現在のスタイルに依存する)ウィンドウ フレームとサイズ グリップで構成されます。QMdiSubWindowは、タイトル・バーと内部ウィジェット用の中央領域からなる独自のレイアウトを持っています。
QMdiSubWindowを構築する最も一般的な方法は、内部ウィジェットを引数としてQMdiArea::addSubWindow ()を呼び出すことです。自分でサブウィンドウを作成し、setWidget() を呼び出して内部ウィジェットを設定することもできます。
サブウィンドウを使ったプログラミングでは、通常のトップレベル・ウィンドウと同じ API を使用します (たとえば、show()、hide()、showMaximized()、setWindowTitle() などの関数を呼び出すことができます)。
サブウィンドウの処理
QMdiSubWindow は、MDI エリア内のサブウィンドウ固有の動作もサポートします。
デフォルトでは、各QMdiSubWindowは、移動するとMDIエリアのビューポート内に表示されますが、透過的なウィンドウの移動とサイズ変更の動作を指定することも可能で、この場合、これらの操作中にサブウィンドウのアウトラインのみが更新されます。この動作を有効にするには、setOption ()関数を使用します。
isShaded ()関数は、サブウィンドウが現在シェーディングされているかどうかを検出します(つまり、タイトルバーだけが見えるようにウィンドウが折りたたまれています)。シェーディング・モードに入るには、showShaded ()を呼び出します。QMdiSubWindow は、ウィンドウの状態が変更されたとき(ウィンドウが最小化されたとき や、復元されたときなど)に、windowStateChanged() シグナルを発行します。また、アクティブになる前にもaboutToActivate() を発信します。
キーボード対話型モードでは、ウィンドウの移動とサイズ変更はキーボードで行う。ウィンドウのシステム・メニューからこのモードに入ることができる。keyboardSingleStep とkeyboardPageStep プロパティは、各キープレス・イベントに対してウィジェットが移動またはサイズ変更される距離を制御します。シフトが押し下げられるとページ・ステップが使用され、そうでなければシングル・ステップが使用されます。
キーボードでアクティブ・ウィンドウを変更することもできます。controlキーとtabキーを同時に押すと、次の(現在のWindowOrder )サブウィンドウがアクティブになります。controlキーとshiftキーとtabキーを同時に押すと、前のウィンドウがアクティブになります。これはactivateNextSubWindow() とactivatePreviousSubWindow() を呼び出すのと同じです。これらのショートカットはグローバル・ショートカットを上書きしますが、QMdiAreaのショートカットは上書きしないことに注意してください。
QMdiAreaも参照のこと 。
メンバ・タイプのドキュメント
enum QMdiSubWindow::SubWindowOption
flags QMdiSubWindow::SubWindowOptions
この enum は、QMdiSubWindow の動作をカスタマイズするオプションを記述します。
定数 | 値 | 説明 |
---|---|---|
QMdiSubWindow::RubberBandResize | 0x4 | このオプションを有効にすると、サブウィンドウのアウトラインを表現するためにラバーバンドコントロールが使用され、ユーザーはサブウィンドウ自体の代わりにこれをリサイズします。その結果、サブウィンドウは、リサイズ操作が完了するまで、元の位置とサイズを維持し、その時点で単一のQResizeEvent を受け取ります。デフォルトでは、このオプションは無効になっています。 |
QMdiSubWindow::RubberBandMove | 0x8 | このオプションを有効にすると、サブウィンドウのアウトラインを表すためにラバーバンドコントロールが使用され、ユーザーはサブウィンドウ自体の代わりにこれを動かします。その結果、サブウィンドウは移動操作が完了するまで元の位置に留まり、その時点でウィンドウにQMoveEvent 。デフォルトでは、このオプションは無効になっています。 |
SubWindowOptions 型はQFlags<SubWindowOption> の typedef です。これは、SubWindowOption 値の OR の組み合わせを格納します。
プロパティの説明
keyboardPageStep : int
は、キーボードのページ・キーを使用したときに、ウィジェットが移動またはサイズ変更する範囲を設定します。
キーボード・インタラクティブ・モードでは、矢印キーとページ・キーを使用してウィンドウを移動またはサイズ変更することができます。このプロパティは、ページキーを制御します。キーボード対話型モードに入る一般的な方法は、サブウィンドウメニューに入り、"resize "か "move "を選択することです。
デフォルトのキーボードページステップ値は20ピクセルである。
アクセス関数:
int | keyboardPageStep() const |
void | setKeyboardPageStep(int step) |
keyboardSingleStepも参照してください 。
keyboardSingleStep : int
は、キーボードの矢印キーを使用したときに、ウィジェットが移動またはサイズ変更する範囲を設定します。
キーボード・インタラクティブ・モードでは、矢印キーとページ・キーを使用してウィンドウを移動またはサイズ変更できます。このプロパティは、矢印キーを制御します。キーボード対話型モードに入る一般的な方法は、サブウィンドウメニューに入り、"resize "か "move "を選択することです。
デフォルトのキーボード1ステップ値は5ピクセルである。
アクセス関数:
int | keyboardSingleStep() const |
void | setKeyboardSingleStep(int step) |
keyboardPageStepも参照してください 。
メンバー関数ドキュメント
QMdiSubWindow::QMdiSubWindow(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())
新しい QMdiSubWindow ウィジェットを構築します。parent とflags の引数はQWidget のコンストラクタに渡されます。
サブウィンドウをQMdiArea に追加する場合、addSubWindow() を使用する代わりに、setParent() を使用することもできます。
QMdiArea の子として設定できるのはQMdiSubWindowだけであることに注意:
QMdiArea::addSubWindow()も参照 。
[virtual noexcept]
QMdiSubWindow::~QMdiSubWindow()
サブウィンドウを破壊する。
QMdiArea::removeSubWindow()も参照 。
[signal]
void QMdiSubWindow::aboutToActivate()
QMdiSubWindow は、アクティブになる直前にこのシグナルを発する。サブウィンドウがアクティブになった後、サブウィンドウを管理する も () シグナルを発する。QMdiArea subWindowActivated
QMdiArea::subWindowActivated()も参照のこと 。
[override virtual protected]
void QMdiSubWindow::changeEvent(QEvent *changeEvent)
再実装:QWidget::changeEvent(QEvent *event)。
[override virtual protected]
void QMdiSubWindow::childEvent(QChildEvent *childEvent)
再実装:QObject::childEvent(QChildEvent *event).
[override virtual protected]
void QMdiSubWindow::closeEvent(QCloseEvent *closeEvent)
再実装:QWidget::closeEvent(QCloseEvent *event)。
[override virtual protected]
void QMdiSubWindow::contextMenuEvent(QContextMenuEvent *contextMenuEvent)
再実装:QWidget::contextMenuEvent(QContextMenuEvent *event)。
[override virtual protected]
bool QMdiSubWindow::event(QEvent *event)
再実装:QWidget::event(QEvent *event)。
[override virtual protected]
bool QMdiSubWindow::eventFilter(QObject *object, QEvent *event)
再インプリメント:QObject::eventFilter(QObject *watched, QEvent *event)。
[override virtual protected]
void QMdiSubWindow::focusInEvent(QFocusEvent *focusInEvent)
再実装:QWidget::focusInEvent(QFocusEvent *event)。
[override virtual protected]
void QMdiSubWindow::focusOutEvent(QFocusEvent *focusOutEvent)
再実装:QWidget::focusOutEvent(QFocusEvent *event)。
[override virtual protected]
void QMdiSubWindow::hideEvent(QHideEvent *hideEvent)
再実装:QWidget::hideEvent(QHideEvent *event).
bool QMdiSubWindow::isShaded() const
このウィンドウがシェーディングされている場合はtrue
を返し、そうでない場合はfalse
を返す。
タイトルバーだけが見えるようにウィンドウが折りたたまれている場合、ウィンドウはシェーディングされます。
[override virtual protected]
void QMdiSubWindow::keyPressEvent(QKeyEvent *keyEvent)
再実装:QWidget::keyPressEvent(QKeyEvent *event)。
[override virtual protected]
void QMdiSubWindow::leaveEvent(QEvent *leaveEvent)
再実装:QWidget::leaveEvent(QEvent *event)。
QMdiArea *QMdiSubWindow::mdiArea() const
このサブウィンドウを含む領域を返します。存在しない場合はnullptr
を返します。
QMdiArea::addSubWindow()も参照 。
[override virtual]
QSize QMdiSubWindow::minimumSizeHint() const
[override virtual protected]
void QMdiSubWindow::mouseDoubleClickEvent(QMouseEvent *mouseEvent)
再実装:QWidget::mouseDoubleClickEvent(QMouseEvent *event)。
[override virtual protected]
void QMdiSubWindow::mouseMoveEvent(QMouseEvent *mouseEvent)
再実装:QWidget::mouseMoveEvent(QMouseEvent *event)。
[override virtual protected]
void QMdiSubWindow::mousePressEvent(QMouseEvent *mouseEvent)
再実装:QWidget::mousePressEvent(QMouseEvent *event)。
[override virtual protected]
void QMdiSubWindow::mouseReleaseEvent(QMouseEvent *mouseEvent)
再実装:QWidget::mouseReleaseEvent(QMouseEvent *event)。
[override virtual protected]
void QMdiSubWindow::moveEvent(QMoveEvent *moveEvent)
再実装:QWidget::moveEvent(QMoveEvent *event)。
[override virtual protected]
void QMdiSubWindow::paintEvent(QPaintEvent *paintEvent)
再実装:QWidget::paintEvent(QPaintEvent *event)。
[override virtual protected]
void QMdiSubWindow::resizeEvent(QResizeEvent *resizeEvent)
再実装:QWidget::resizeEvent(QResizeEvent *event)を再実装します。
警告: 警告: サブウィンドウを最大化または復元する場合、この関数の呼び出し結果は無効なQResizeEvent::oldSize() を持つ可能性があります。
void QMdiSubWindow::setOption(QMdiSubWindow::SubWindowOption option, bool on = true)
on がtrueの場合、option がサブウィンドウで有効になり、そうでない場合は無効になる。各オプションの効果についてはSubWindowOption を参照のこと。
SubWindowOption およびtestOption()も参照の こと。
void QMdiSubWindow::setSystemMenu(QMenu *systemMenu)
このサブウィンドウの現在のシステムメニューとしてsystemMenu を設定する。
デフォルトでは、各QMdiSubWindow は標準のシステムメニューを持っています。
QMdiSubWindow によって作成されたシステムメニューのQActionは、現在のウィンドウの状態に応じて自動的に更新されます。例えば、ウィンドウが最小化されると、最小化アクションは無効になります。
ユーザーによって追加されたQActionはQMdiSubWindow によって更新されません。
QMdiSubWindow は のオーナーシップを取ります; 削除する必要はありません。既存のメニューはすべて削除されます。systemMenu
systemMenu() およびshowSystemMenu()も参照してください 。
void QMdiSubWindow::setWidget(QWidget *widget)
サブウィンドウの内部ウィジェットとしてwidget を設定します。内部ウィジェットはサブウィンドウの中央、タイトルバーの下に表示されます。
QMdiSubWindow は、 の一時的な所有権を取ります; 削除する必要はありません。既存の内部ウィジェットは削除され、ルート・ウィンドウに再親告されます。widget
widget()も参照のこと 。
[override virtual protected]
void QMdiSubWindow::showEvent(QShowEvent *showEvent)
再実装:QWidget::showEvent(QShowEvent *event)。
[slot]
void QMdiSubWindow::showShaded()
この関数を呼び出すと、サブウィンドウはシェーディング・モードになる。サブウィンドウがシェーディングされると、タイトルバーだけが表示されます。
シェーディングはすべてのスタイルでサポートされているわけではありませんが、シェーディングのサポートが利用可能かどうかにかかわらず、この関数はサブウィンドウをシェーディングされたものとして表示します。しかし、シェーディングをサポートしていないスタイルで使用された場合、ユーザはユーザインタフェース(例えば、タイトルバーのシェーディングボタン)を通してシェーディングモードから戻ることができなくなります。
isShaded()も参照してください 。
[slot]
void QMdiSubWindow::showSystemMenu()
タイトルバーのシステムメニューアイコンの下にシステムメニューを表示する。
setSystemMenu() およびsystemMenu()も参照してください 。
[override virtual]
QSize QMdiSubWindow::sizeHint() const
QMenu *QMdiSubWindow::systemMenu() const
現在のシステム・メニューへのポインタを返すか、システム・メニューが設定されていなけれ ばゼロを返す。QMdiSubWindow はデフォルトのシステム・メニューを提供するが、setSystemMenu() でメニューを設定することもできる。
setSystemMenu() およびshowSystemMenu()も参照の こと。
bool QMdiSubWindow::testOption(QMdiSubWindow::SubWindowOption option) const
option が有効な場合はtrue
を返し、そうでない場合はfalse
を返す。
SubWindowOption およびsetOption()も参照のこと 。
[override virtual protected]
void QMdiSubWindow::timerEvent(QTimerEvent *timerEvent)
再実装:QObject::timerEvent(QTimerEvent *event).
QWidget *QMdiSubWindow::widget() const
現在の内部ウィジェットを返します。
setWidget()も参照してください 。
[signal]
void QMdiSubWindow::windowStateChanged(Qt::WindowStates oldState, Qt::WindowStates newState)
QMdiSubWindow ウィンドウの状態が変更されると、このシグナルを発する。 は変更前のウィンドウの状態、 は新しい現在の状態である。oldState newState
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.