QMdiSubWindow Class
QMdiSubWindow クラスは、QMdiArea 用のサブウィンドウ・クラスを提供します。詳細...
Header: | #include <QMdiSubWindow> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
Inherits: | 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)
再リンプルメント: (QChildEvent *event):QWidget::closeEvent(QCloseEvent *event)。
[override virtual protected]
void QMdiSubWindow::contextMenuEvent(QContextMenuEvent *contextMenuEvent)
再リンプルメント:QWidget::contextMenuEvent(QContextMenuEvent *event)。
[override virtual protected]
bool QMdiSubWindow::event(QEvent *event)
再リンプルメント: (QContextMenuEvent *event):QWidget::event(QEvent *event)。
[override virtual protected]
bool QMdiSubWindow::eventFilter(QObject *object, QEvent *event)
再リンプルメント: (QEvent *event):QObject::eventFilter(QObject *watched, QEvent *event)。
[override virtual protected]
void QMdiSubWindow::focusInEvent(QFocusEvent *focusInEvent)
再リンプルメント: (QObject *watched, QEvent *event):QWidget::focusInEvent(QFocusEvent *event)。
[override virtual protected]
void QMdiSubWindow::focusOutEvent(QFocusEvent *focusOutEvent)
再リンプルメント: (QFocusEvent *event):QWidget::focusOutEvent(QFocusEvent *event)。
[override virtual protected]
void QMdiSubWindow::hideEvent(QHideEvent *hideEvent)
再リンプルメント: (QFocusEvent *event)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
プロパティのアクセス関数を再インプリメントします:QWidget::minimumSizeHint 。
[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)
再リンプルメント: (QMouseEvent *event)QWidget::mouseReleaseEvent(QMouseEvent *event).
[override virtual protected]
void QMdiSubWindow::moveEvent(QMoveEvent *moveEvent)
再リンプルメント: (QMouseEvent *event)QWidget::moveEvent(QMoveEvent *event)。
[override virtual protected]
void QMdiSubWindow::paintEvent(QPaintEvent *paintEvent)
再リンプルメント: (QMoveEvent *event):QWidget::paintEvent(QPaintEvent *event)。
[override virtual protected]
void QMdiSubWindow::resizeEvent(QResizeEvent *resizeEvent)
再リンプルメント: (QPaintEvent *event):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
プロパティのアクセス関数を再インプリメントします:QWidget::sizeHint 。
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
©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。