Window QML Type
新しいトップレベルウィンドウを作成します。詳細...
| Import Statement: | import QtQuick |
| In C++: | QQuickWindow |
| Inherited By: |
プロパティ
- active : bool
- activeFocusItem : Item
- color : color
- contentItem : Item
- contentOrientation : Qt::ScreenOrientation
- data : list<QtObject>
- flags : Qt::WindowFlags
- height : int
- maximumHeight : int
- maximumWidth : int
- minimumHeight : int
- minimumWidth : int
- modality : Qt::WindowModality
- opacity : real
- palette : Palette
(since 6.0) - screen : Screen
- title : string
- transientParent : QWindow
- visibility : QWindow::Visibility
- visible : bool
- width : int
- x : int
- y : int
付属物件
- active : bool
- activeFocusItem : Item
- contentItem : Item
- height : int
- visibility : QWindow::Visibility
- width : int
- window : Window
信号
- afterAnimating()
- closing(CloseEvent close)
- devicePixelRatioChanged()
- frameSwapped()
- sceneGraphError(SceneGraphError error, QString message)
方法
- void alert(int msec)
- void close()
- void hide()
- void lower()
- void raise()
- void requestActivate()
- void show()
- void showFullScreen()
- void showMaximized()
- void showMinimized()
- void showNormal()
- void startSystemMove()
(since 6.8) - void startSystemResize(Qt::Edges edges)
(since 6.8)
詳細説明
Windowオブジェクトは、Qt Quick シーン用の新しいトップレベルウィンドウを作成します。それは自動的にQtQuick グラフィカル タイプで使用するためにウィンドウをセットアップします。
WindowはItemの内部または別のWindowの内部で宣言することができます。この場合、内側のWindowは自動的に外側のWindowの「transient for」になり、外側のWindowはそのtransientParent 。この場合、内側のウィンドウは自動的に外側のウィンドウの「一時的な」ウィンドウになり、外側のウィンドウはそのウィンドウになります。ほとんどのプラットフォームではこの場合、ウィンドウは外側のウィンドウの中央に表示され、flags によって他のプラットフォーム依存の動作があるかもしれません。ネストされたウィンドウがアプリケーションのダイアログになる場合は、flags をQt.Dialog に設定する必要があります。
トップレベルQtObject の中に複数のウィンドウを宣言することもできます。
また、x とy を設定またはバインドして、ウィンドウを画面上に明示的に配置することもできます。
ユーザーがウィンドウを閉じようとすると、closing シグナルが発せられます。ウィンドウを閉じることが安全でない限り(たとえば、未保存の変更がなくなった場合など)、close.accepted = false を設定するonClosing ハンドラを記述することで、ウィンドウを開いたままにすることができます(たとえば、ユーザーに変更の保存を促すため)。
onClosing: (close) => { if (document.changed) { close.accepted = false confirmExitPopup.open() } } // The confirmExitPopup allows user to save or discard the document, // or to cancel the closing.
スタイリング
Qt Quick のすべての視覚型と同様に、Window はpalettes をサポートしています。しかし、Text のようなタイプと同様に、Window はデフォルトでパレットを使用しません。たとえば、オペレーティング システムのテーマが変更されたときにウィンドウの背景色を変更するには、color を設定する必要があります:
Window { visible: true // here we use the Window.active and Window.palette ordinary properties color: active ? palette.active.window : palette.inactive.window Text { anchors.centerIn: parent // here we use the Window.active attached property and the Item.palette property color: Window.active ? palette.active.windowText : palette.inactive.windowText text: Window.active ? "active" : "inactive" } }
のApplicationWindow (およびLabel )を使用してください。 Qt Quick Controlsを使用してください。
プロパティ・ドキュメント
active : bool [read-only]
ウィンドウのアクティブ状態。
Window { visible: true // here we use the Window.active and Window.palette ordinary properties color: active ? palette.active.window : palette.inactive.window }
requestActivate()も参照 。
activeFocusItem : Item [read-only]
現在アクティブなフォーカスを持つアイテム、またはアクティブなフォーカスを持つアイテムがない場合はnull 。
color : color
ウィンドウの背景色。
このプロパティを設定すると、別のRectangleを使用するよりも効率的です。
注意: 色を"transparent" 、またはアルファ半透明の色に設定する場合は、flags: Qt.FramelessWindowHint のような適切なflags も設定する必要があります。そうしないと、ウィンドウの半透明がすべてのプラットフォームで一貫して有効にならない可能性があります。
contentItem : Item [read-only]
シーンの不可視のルートアイテム。
contentOrientation : Qt::ScreenOrientation
これはウィンドウマネージャがポップアップ、ダイアログ、ステータスバーなどの追加コンテンツをウィンドウに関連して表示する必要がある場合のヒントです。
推奨される向きはScreen.orientation ですが、アプリケーションはすべての可能な向きをサポートする必要はなく、現在の画面の向きを無視することもできます。
ウィンドウとコンテンツの向きの差は、コンテンツをどれだけ回転させるかを決定します。
デフォルト値はQt::PrimaryOrientation です。
Screenも参照してください 。
data : list<QtObject> [default]
data プロパティを使用すると、ウィンドウ内のビジュアル チルドレン、リソース、他のウィンドウを自由に混在させることができます。
データリストに別のウィンドウを割り当てると、入れ子になったウィンドウは外側のウィンドウの「一時的な」ウィンドウになります。
データリストにItem を割り当てると、ウィンドウの子contentItem になり、ウィンドウの内側に表示されます。アイテムの親はウィンドウのcontentItem になり、そのウィンドウ内のアイテム所有ツリーのルートになります。
他のオブジェクトタイプを割り当てると、リソースとして追加されます。
通常、data プロパティを参照する必要はありません。これは Window のデフォルト プロパティであるため、すべての子アイテムは自動的にこのプロパティに割り当てられます。
QWindow::transientParent()も参照してください 。
flags : Qt::WindowFlags
ウィンドウのウィンドウ・フラグ。
ウィンドウフラグは、ウィンドウシステムにおけるウィンドウの外観、ダイアログかポップアップか通常のウィンドウか、タイトルバーの有無などを制御する。
このプロパティから読み取るフラグは、要求されたフラグを満たすことができなかった場合、設定したフラグと異なる場合があります。
import QtQuick Window { id: mainWindow title: "Main Window" color: "#456" property real defaultSpacing: 10 property Splash splash: Splash { onTimeout: mainWindow.show() } component Splash: Window { id: splash // a splash screen has no titlebar flags: Qt.SplashScreen // the transparent color lets background behind the image edges show through color: "transparent" modality: Qt.ApplicationModal // in case another application window is showing title: "Splash Window" // for the taskbar/dock, task switcher etc. visible: true // here we use the Screen attached property to center the splash window x: (Screen.width - splashImage.width) / 2 y: (Screen.height - splashImage.height) / 2 width: splashImage.width height: splashImage.height property int timeoutInterval: 2000 signal timeout Image { id: splashImage source: "images/qt-logo.png" } TapHandler { onTapped: splash.timeout() } Timer { interval: splash.timeoutInterval; running: true; repeat: false onTriggered: { splash.visible = false splash.timeout() } } } }
Qt::WindowFlags およびQt Quick Examples - Window and Screenも参照してください 。
ウィンドウの位置とサイズを定義します。
(x,y)位置は、Screen (1つしかない場合)、または仮想デスクトップ(複数のスクリーンの配置)に対する相対位置です。
注意: すべてのウィンドウシステムが、トップレベルのウィンドウ位置の設定や問い合わせをサポートしているわけではありません。そのようなシステムでは、プログラムでウィンドウを動かしても何の効果もなく、QPoint(0, 0) のような人工的な値が現在の位置として返されるかもしれない。
Window { x: 100; y: 100; width: 100; height: 100 }

ウィンドウの最大サイズを定義する。
これは、指定された幅と高さ以上のリサイズを防ぐためのウィンドウ・マネージャへのヒントです。
ウィンドウの最小サイズを定義します。
これは、指定された幅と高さ以下のリサイズを防ぐためのウィンドウマネージャへのヒントです。
modality : Qt::WindowModality
ウィンドウのモダリティ。
モーダルウィンドウは、他のウィンドウが入力イベントを受け取るのを防ぎます。取り得る値は Qt.NonModal(デフォルト)、Qt.WindowModal、Qt.ApplicationModal です。
opacity : real
ウィンドウの不透明度。
ウィンドウシステムがウィンドウの不透明度をサポートしている場合、これを使用してウィンドウをフェードイン/フェードアウトしたり、半透明にしたりすることができます。
1.0以上の値は完全な不透明として扱われ、0.0以下の値は完全な透明として扱われます。その中間の値は、両極端の間のさまざまな半透明のレベルを表します。
デフォルト値は1.0です。
palette : Palette [since 6.0]
このプロパティは、ウィンドウに現在設定されているパレットを保持します。
デフォルトのパレットはシステム環境に依存します。QGuiApplication はシステム/テーマパレットを保持し、すべてのアプリケーションウィンドウのデフォルトとして機能します。QML を読み込む前にQGuiApplication::setPalette() にカスタムパレットを渡すことで、 ウィンドウのデフォルトパレットを設定することもできます。
Window は明示的なパレットプロパティを子アイテムやコントロールに伝え、そのプロパティのシステムデフォルトを上書きします。
import QtQuick import QtQuick.Controls Window { visible: true // here we use the Window.active and Window.palette ordinary properties color: active ? palette.active.window : palette.inactive.window // colors that are not customized here come from SystemPalette palette.active.window: "peachpuff" palette.windowText: "brown" Text { anchors.centerIn: parent // here we use the Window.active attached property and the Item.palette property color: Window.active ? palette.active.windowText : palette.inactive.windowText text: Window.active ? "active" : "inactive" } Button { text: "Button" anchors { bottom: parent.bottom bottomMargin: 6 horizontalCenter: parent.horizontalCenter } } }
このプロパティは Qt 6.0 で導入されました。
Item::palette,Popup::palette,ColorGroup,SystemPaletteも参照してください 。
screen : Screen
ウィンドウが関連付けられるスクリーン。
ウィンドウを表示する前に指定すると、明示的にウィンドウの位置が設定されていない限り、ウィンドウはそのスクリーンに表示される。値はApplication.screens 配列の要素でなければなりません。
注意: 基本となるネイティブ・ウィンドウが作成されるときに、ウィンドウが確実に希望のスクリーンと関連付けられるように、このプロパティができるだけ早く設定され、その値の設定が延期されないようにしてください。これは、ウィンドウ・システムのない組み込みプラットフォームでは特に重要であり、1画面につき1つのウィンドウしか一度に許可されません。ウィンドウが作成された後にスクリーンを設定しても、新しいスクリーンが古いスクリーンと同じ仮想デスクトップの一部であれば、ウィンドウは移動しません。
QWindow::setScreen()、QWindow::screen()、QScreen 、Applicationも参照のこと 。
title : string
ウィンドウシステムにおけるウィンドウのタイトル。
ウィンドウのタイトルはウィンドウシステムとウィンドウフラグによってウィンドウ装飾のタイトル領域に表示されるかもしれない。また、タスクスイッチャーなどの他のコンテキストでウィンドウを識別するためにウィンドウシステムによって使用されるかもしれません。
transientParent : QWindow
このウィンドウが一時的なポップアップであるウィンドウ。
これはウィンドウマネージャに対して、このウィンドウが一時的な親ウィンドウに代わるダイアログまたはポップアップであることを示すヒントです。これは通常、トランジェントウィンドウが最初に表示されたときに、そのトランジェントペアレントウィンドウの中央に表示されること、ペアレントウィンドウを最小化するとトランジェントウィンドウも最小化されることなどを意味します。
アイテムまたは別の Window の内部で Window を宣言すると、default property または専用のプロパティによって、transientParent プロパティが明示的に設定されていない限り、含む Window に一時的な親子関係が自動的に設定されます。これは、parent 引数として Item または Window が渡される限り、Qt.createComponent またはQt.createQmlObject を介して Window アイテムを作成するときにも適用されます。
transient親を持つWindowは、visible プロパティがtrue であっても、そのtransient親が表示されるまで表示されません。これは前述の自動的な一時的親関係にも適用されます。特に、Windowの包含エレメントがItemの場合、そのビジュアル親階層を介して、包含アイテムがシーンに追加されるまで、Windowは表示されません。transientParentをnull に設定すると、この動作がオーバーライドされます:
ウィンドウがデフォルトでその一時的な親の上にセンタリングされるようにするには、ウィンドウ マネージャによっては、Window::flags プロパティを適切なQt::WindowType (Qt::Dialog など)で設定する必要があります。
parent()も参照してください 。
visibility : QWindow::Visibility
ウィンドウの画面占有状態。
可視性とは、ウィンドウがウィンドウシステムで通常、最小化、最大化、フルスクリーン、非表示のどれで表示されるべきかを示す。
visibilityをAutomaticVisibility に設定することは、ウィンドウにデフォルトの表示状態を与えることを意味し、プラットフォームによってはFullScreen またはWindowed 。しかし、visibilityプロパティを読み取るときは、常に実際の状態を取得し、決してAutomaticVisibility 。
ウィンドウがvisible でない場合、その可視性はHidden です。visibility をHidden に設定することは、visible をfalse に設定することと同じです。
デフォルト値はHidden
import QtQuick import QtQuick.Controls Window { id: win flags: Qt.Window | Qt.WindowFullscreenButtonHint visibility: fullscreenButton.checked ? Window.FullScreen : Window.Windowed Button { id: fullscreenButton anchors { right: parent.right top: parent.top margins: 6 } width: height checkable: true Binding on checked { value: win.visibility === Window.FullScreen } text: "⛶" ToolTip.visible: hovered ToolTip.delay: Qt.styleHints.mousePressAndHoldInterval ToolTip.text: win.visibility === Window.FullScreen ? qsTr("restore") : qsTr("fill screen") } }
visible とQt Quick の例 - Window と Screenも参照して ください。
visible : bool
ウィンドウが画面上に表示されているかどうか。
visible を false に設定することは、visibility をHidden に設定することと同じです。
visibility の設定によって上書きされない限り、デフォルト値はfalse です。
visibilityも参照してください 。
付属プ ロパテ ィ 文書
Window.active : bool [read-only]
この添付プロパティは、ウィンドウがアクティブかどうかを示す。Window attachedプロパティはどのItemにもアタッチすることができる。
以下は、ラベルが表示されているウィンドウのアクティブ状態を表示するようにラベルを変更する例である:
import QtQuick Text { text: Window.active ? "active" : "inactive" }
Window.activeFocusItem : Item [read-only]
このアタッチされたプロパティは、現在アクティブなフォーカスを持つアイテム、またはアクティブなフォーカスを持つアイテムがない場合はnull を保持します。Window attachedプロパティは、任意のItemにアタッチすることができます。
Window.contentItem : Item [read-only]
このアタッチドプロパティは、シーンの不可視ルートアイテム、またはアイテムがウィンドウ内にない場合はnull を保持します。Window attachedプロパティは、どのItemにもアタッチできます。
これらのアタッチされたプロパティは、アイテムのウィンドウのサイズを保持する。Windowアタッチドプロパティは、どのItemにもアタッチできます。
Window.visibility : QWindow::Visibility [read-only]
この attached プロパティは、ウィンドウが現在ウィンドウシステムで通常表示、最小化、最大化、フルスクリーン、または非表示として表示されているかどうかを保持する。Window 添付プロパティは、任意のItemに添付することができる。アイテムがどのウィンドウにも表示されていない場合、値はHidden になります。
visible およびvisibilityも参照して ください。
Window.window : Window
このアタッチドプロパティは、アイテムのウィンドウを保持する。Windowアタッチドプロパティは、どのItemにもアタッチすることができる。
シグナルのドキュメント
afterAnimating()
このシグナルは、レンダリングスレッドにシーングラフの同期を要求する前に、GUIスレッドで発行されます。
onAfterAnimatingを実装することで、各アニメーションステップの後に追加処理を行うことができます。
注: 対応するハンドラはonAfterAnimating です。
closing(CloseEvent close)
このシグナルは、ユーザーがウィンドウを閉じようとしたときに発せられる。
このシグナルにはclose パラメータが含まれます。close.accepted プロパティはデフォルトでは true で、ウィンドウを閉じることが許可されます。しかし、ウィンドウを閉じる前に何か他の処理を行う必要がある場合は、onClosing ハンドラを実装し、close.accepted = false を設定することができます。
注: 対応するハンドラはonClosing です。
devicePixelRatioChanged()
注: 対応するハンドラーはonDevicePixelRatioChanged 。
frameSwapped()
このシグナルは、フレームが提示のためにキューに入れられたときに発せられる。垂直同期を有効にすると、このシグナルは、連続的にアニメーションするシーンで、vsync 間隔ごとに最大 1 回発行されます。
注: 対応するハンドラはonFrameSwapped です。
sceneGraphError(SceneGraphError error, QString message)
このシグナルは、シーングラフの初期化中にerror 。
onSceneGraphError(error,message)を実装することで、グラフィックコンテキストの作成失敗などのエラーを独自の方法で処理することができます。このシグナルにハンドラが接続されていない場合、Quick はmessage を表示するか、メッセージボックスを表示し、アプリケーションを終了します。
メモ: 対応するハンドラはonSceneGraphError です。
メソッドのドキュメント
void alert(int msec)
アラートをmsec ミリ秒間表示する。msec が0 (デフォルト) の場合、ウィンドウが再びアクティブになるまで、 アラートは無期限に表示される。
アラート状態では、ウィンドウは、タスクバーのエントリを点滅させたり、バウンスさせるなどして、注意が必要であることを示す。
void close()
ウィンドウを閉じる。
このメソッドが呼び出されたとき、またはユーザがタイトルバーのボタンでウィンドウを閉じようとしたとき、closing シグナルが発行されます。ハンドラがない場合、またはハンドラが閉じる許可を取り消さない場合、ウィンドウはその後閉じます。QGuiApplication::quitOnLastWindowClosed プロパティがtrue で、他に開いているウィンドウがない場合、アプリケーションは終了します。
void hide()
ウィンドウを隠す。
visible をfalse に、またはvisibility をHidden に設定するのと同等。
show()も参照 。
void lower()
ウィンドウシステムのウィンドウを下げる。
ウィンドウを下げて他のウィンドウの下に表示するように要求する。
void raise()
ウィンドウシステムのウィンドウを上げる。
ウィンドウを他のウィンドウより上に表示するように要求する。
void requestActivate()
ウィンドウをアクティブにする、つまりキーボードフォーカスを受けるように要求する。
void show()
ウィンドウを表示する。
これは、showFullScreen()、showMaximized()、またはshowNormal() を呼び出すのと同じである。
showFullScreen()、showMaximized()、showNormal()、hide()、QQuickItem::flags()も参照 。
void showFullScreen()
ウィンドウをフルスクリーンで表示する。
visibility をFullScreen に設定するのと同じです。
void showMaximized()
ウィンドウを最大化して表示する。
visibility をMaximized に設定するのと同じです。
void showMinimized()
ウィンドウを最小化して表示する。
visibility をMinimized に設定するのと同じです。
void showNormal()
ウィンドウを通常通り、つまり最大化も最小化もフルスクリーンもせずに表示する。
visibility をWindowed に設定するのと同じです。
[since 6.8] void startSystemMove()
システム固有の移動操作を開始する。
プラットフォームのサポートを使って、ウィンドウに対して対話的な移動操作を開始する。ウィンドウはマウスボタンが離されるまでマウスカーソルに追従する。
ウィンドウ・マネージャがスナップ、タイリング、および関連するアニメーションを処理できるようにするため、setPosition の代わりにこのメソッドを使用します。Waylandでは、setPosition がサポートされていないため、アプリケーションがウィンドウの位置に影響を与えることができる唯一の方法です。
この方法はQt 6.8で導入されました。
[since 6.8] void startSystemResize(Qt::Edges edges)
システム固有のリサイズ操作を開始する。
プラットフォームのサポートを使用して、ウィンドウのインタラクティブなリサイズ操作を開始する。指定されたエッジはドラッグ中にマウスカーソルに追従する。
setGeometry の代わりにこのメソッドを使用します。これは、ウィンドウ マネージャが画面端へのサイズ変更時にスナップとサイズ変更アニメーションを処理できるようにするためです。
edges は単一の辺か、隣接する2つの辺の組み合わせ(コーナー)でなければなりません。それ以外の値は使用できません。
このメソッドは Qt 6.8 で導入されました。
© 2026 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.