Window QML Type
新しいトップレベルウィンドウを作成します。詳細...
Import Statement: | import QtQuick |
In C++: | QQuickWindow |
プロパティ
- 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 : variant
- 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)
- frameSwapped()
- sceneGraphError(SceneGraphError error, QString message)
メソッド
- alert(int msec)
- close()
- hide()
- lower()
- raise()
- requestActivate()
- show()
- showFullScreen()
- showMaximized()
- showMinimized()
- showNormal()
詳細な説明
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" } }
自動スタイリングを使用するには、Windowの代わりにQt Quick Controlsの ApplicationWindow (およびLabel )を使用してください。
プロパティ ドキュメント
ウィンドウの最小サイズを定義します。
これは指定された幅と高さ以下のリサイズを防ぐためのウィンドウマネージャへのヒントです。
ウィンドウの最大サイズを定義します。
これは指定された幅と高さ以上のリサイズを防ぐためのウィンドウマネージャへのヒントです。
active : bool |
ウィンドウのアクティブ状態。
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 |
現在アクティブなフォーカスを持つ項目、またはアクティブなフォーカスを持つ項目がない場合はnull
を指定します。
color : color |
ウィンドウの背景色。
このプロパティを設定すると、別のRectangleを使用するよりも効率的です。
注意: 色を"transparent"
やアルファ半透明の色に設定する場合は、flags: Qt.FramelessWindowHint
などの適切なflags も設定する必要があります。そうしないと、ウィンドウの半透明がすべてのプラットフォームで一貫して有効にならない場合があります。
contentItem : Item |
シーンの不可視ルートアイテム。
contentOrientation : Qt::ScreenOrientation |
これはウィンドウマネージャがウィンドウに関連してポップアップ、ダイアログ、ステータスバーなどの追加コンテンツを表示する必要がある場合のヒントです。
推奨される向きはScreen.orientation ですが、アプリケーションはすべての可能な向きをサポートする必要はないので、現在の画面の向きを無視することもできます。
ウィンドウとコンテンツの向きの差は、コンテンツをどれだけ回転させるかを決定します。
デフォルト値はQt::PrimaryOrientation です。
Screenも参照してください 。
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も参照して ください。
modality : Qt::WindowModality |
ウィンドウのモダリティ。
モーダルウィンドウは、他のウィンドウが入力イベントを受け取るのを防ぎます。指定できる値は Qt.NonModal(デフォルト)、Qt.WindowModal、Qt.ApplicationModal です。
opacity : real |
ウィンドウの不透明度。
ウィンドウシステムがウィンドウの不透明度をサポートしている場合、これを使用してウィンドウをフェードイン/フェードアウトしたり、半透明にしたりすることができます。
1.0以上の値は完全な不透明として扱われ、0.0以下の値は完全な透明として扱われます。その中間の値は、両極端の間のさまざまな半透明のレベルを表します。
デフォルト値は1.0である。
palette : Palette |
このプロパティは、ウィンドウに現在設定されているパレットを保持する。
デフォルトのパレットはシステム環境に依存します。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 : variant |
ウィンドウが関連付けられているスクリーン。
ウィンドウを表示する前に指定すると、明示的なウィンドウ位置が設定されていない限り、ウィンドウはそのスクリーンに表示される。値はQt.application.screens配列の要素でなければなりません。
注意: 基本となるネイティブ・ウィンドウが作成されるときに、ウィンドウが確実に希望のスクリーンと関連付けられるようにするには、このプロパティができるだけ早く設定され、その値の設定が延期されないようにしてください。これは、ウィンドウ・システムのない組み込みプラットフォームでは特に重要であり、1画面につき1つのウィンドウしか一度に許可されません。ウィンドウが作成された後にスクリーンを設定しても、新しいスクリーンが古いスクリーンと同じ仮想デスクトップの一部であれば、ウィンドウは移動しません。
QWindow::setScreen()、QWindow::screen()、QScreen 、Qt.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は、ウィンドウがウィンドウシステムで通常、最小化、最大化、フルスクリーン、非表示のどれで表示されるべきかを示す。
visibilityをAutomaticVisibility に設定することは、ウィンドウにデフォルトの可視状態を与えることを意味し、プラットフォームによってはFullScreen またはWindowed 。しかし、visibilityプロパティを読み取るときは、常に実際の状態を取得し、決してAutomaticVisibility
。
ウィンドウが表示されていないとき、その可視性はHidden
であり、可視性をHidden に設定することは、visible をfalse
に設定することと同じです。
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 Examples - Window and Screenも参照してください 。
visible : bool |
ウィンドウが画面上に表示されているかどうか。
visible を false に設定することは、visibility からHidden に設定することと同じです。
デフォルト値はvisibility で上書きされない限りfalse
です。
visibilityも参照してください 。
付属プ ロパテ ィ 文書
これらの付属プロパティは、アイテムのウィンドウのサイズを保持する。Window 添付プロパティは、どのアイテムにも添付することができます。
Window.active : bool |
この付属プロパティはウィンドウがアクティブかどうかを示す。Window アタッチドプロパティは、どのアイテムにもアタッチできます。
以下は、ラベルが表示されているウィンドウのアクティブ状態を表示するようにラベルを変更する例です:
import QtQuick Text { text: Window.active ? "active" : "inactive" }
Window.activeFocusItem : Item |
このアタッチされたプロパティは、現在アクティブなフォーカスを持つアイテムを保持し、アクティブなフォーカスを持つアイテムがない場合は、null
。Window attachedプロパティは、どのItemにもアタッチできる。
Window.contentItem : Item |
このアタッチドプロパティは、シーンの不可視ルートアイテムを保持し、アイテムがウィンドウ内にない場合は、null
。Window attachedプロパティは、任意のItemにアタッチすることができる。
Window.visibility : QWindow::Visibility |
このアタッチされたプロパティは、ウィンドウが現在ウィンドウシステムで通常、最小化、最大化、フルスクリーン、または非表示として表示されているかどうかを保持する。Window
添付プロパティは、任意のItemに添付することができる。アイテムがどのウィンドウにも表示されていない場合、値はHidden になります。
visible およびvisibilityも参照して ください。
Window.window : Window |
このアタッチされたプロパティは、アイテムのウィンドウを保持する。Window attached プロパティは任意の Item にアタッチできる。
シグナルの説明
afterAnimating() |
このシグナルは、レンダースレッドにシーングラフの同期を要求する前に、GUIスレッドに発行されます。
onAfterAnimatingを実装することで、各アニメーションステップの後に追加処理を行うことができます。
注: 対応するハンドラはonAfterAnimating
です。
closing(CloseEvent close) |
このシグナルは、ユーザーがウィンドウを閉じようとすると発行されます。
このシグナルにはclose パラメータが含まれます。close.accepted
プロパティはデフォルトで true なので、ウィンドウを閉じることができます。しかし、ウィンドウを閉じる前に他の処理を行う必要がある場合は、onClosing
ハンドラを実装して、close.accepted = false
を設定することができます。
注: 対応するハンドラはonClosing
です。
frameSwapped() |
このシグナルは、フレームが提示のためにキューに入れられたときに発行されます。垂直同期が有効な場合、このシグナルは、連続的にアニメーションするシーンで、vsync 間隔ごとに最大 1 回発行されます。
注: 対応するハンドラはonFrameSwapped
です。
sceneGraphError(SceneGraphError error, QString message) |
このシグナルは、シーングラフの初期化中にerror が発生したときに発行されます。
onSceneGraphError(error、message) を実装して、グラフィックコンテキストの作成失敗などのエラーをカスタムで処理することができます。このシグナルにハンドラが接続されていない場合、Quick はmessage を表示するか、メッセージボックスを表示し、アプリケーションを終了します。
メモ: 対応するハンドラはonSceneGraphError
です。
メソッドのドキュメント
alert(int msec) |
アラートをmsec ミリ秒間表示します。msec が0
(デフォルト) の場合、アラートはウィンドウが再びアクティブになるまで無期限に表示される。
アラート状態では、ウィンドウは、タスクバーのエントリを点滅させたり、バウンスさせるなどして、注意が必要であることを示す。
close() |
ウィンドウを閉じる。
このメソッドが呼び出されたとき、またはユーザーがタイトル バー ボタンでウィンドウを閉じようとしたとき、closing シグナルが発行されます。ハンドラがない場合、またはハンドラが閉じる許可を取り消さない場合、ウィンドウはその後閉じます。QGuiApplication::quitOnLastWindowClosed プロパティがtrue
で、他に開いているウィンドウがない場合、アプリケーションは終了します。
hide() |
lower() |
ウィンドウ・システムのウィンドウを下げる。
ウィンドウを下げて他のウィンドウの下に表示するように要求します。
raise() |
ウィンドウシステムのウィンドウを上げます。
他のウィンドウの上に表示されるようにウィンドウを上げることを要求します。
requestActivate() |
ウィンドウをアクティブにする、すなわちキーボードフォーカスを受け取るように要求する。
show() |
ウィンドウを表示する。
これはshowFullScreen()、showMaximized()、showNormal() を呼び出すのと同じである。
showFullScreen()、showMaximized()、showNormal()、hide()、QQuickItem::flags()も参照 。
showFullScreen() |
ウィンドウをフルスクリーンで表示する。
visibility をFullScreen に設定するのと同じです。
showMaximized() |
ウィンドウを最大化して表示します。
visibility をMaximized に設定するのと同じです。
showMinimized() |
ウィンドウを最小化して表示します。
visibility をMinimized に設定するのと同じです。
showNormal() |
ウィンドウを通常の状態、つまり最大化も最小化もフルスクリーンもしない状態で表示します。
visibility をWindowed に設定するのと同じです。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。