Qt Quick 例題 - WindowとScreen
この例題では、QMLのWindowとScreenについて説明します。
WindowとScreenは以下の方法を示します:
- QMLでウィンドウを作成する
- ウィンドウを制御するvisibility
- アプリケーション起動時にスプラッシュ画面を表示する
- ウィンドウのプロパティにアクセスするScreen
また、QMLをリソースにパッケージ化し、アイコンを提供することで、スタンドアロンのQMLデスクトップアプリケーションを作成する方法も示しています。
サンプルを実行する
からサンプルを実行するには Qt Creatorからサンプルを実行するには、Welcome モードを開き、Examples からサンプルを選択してください。詳しくは、Building and Running an Exampleをご覧ください。
ウィンドウの実装
スプラッシュ・スクリーンはQt.SplashScreen フラグで作成することができ、メイン・ウィンドウとの相互作用を防ぐためにApplicationModal 。スプラッシュ・ウィンドウも透明で、部分的に透明な画像を表示している場合、それは整形されたウィンドウのように見えます。
Window { id: splash color: "transparent" title: "Splash Window" modality: Qt.ApplicationModal flags: Qt.SplashScreen property int timeoutInterval: 2000 signal timeout
この例ではTimer 、自動的にスプラッシュ・スクリーンが解除されますが、実際のアプリケーションでは、初期化が完了したときにアプリケーション・ロジックからのシグナルに接続してスプラッシュを非表示にしたい場合があります。
Timer { interval: splash.timeoutInterval; running: splash.visible; repeat: false onTriggered: splash.exit() }
この例のメイン・ウィンドウはコントロール・ウィンドウで、セカンダリ・ウィンドウの状態をコントロールし、フィードバックするためのボタンとチェックボックスがあります。各チェックボックスには、その状態を表示するプロパティへのバインディングと、状態を変更するonClickedハンドラがあります。これは、バインディングループを避けながら双方向バインディングを作成するための典型的なパターンです。
CheckBox { text: "Windowed" height: showButton.height width: col.cellWidth Binding on checked { value: root.testWindow.visibility === Window.Windowed } onClicked: root.testWindow.visibility = Window.Windowed }
Screen CurrentScreen.qmlには、画面の向きが変わったときにコンテンツを回転させたり、ウィンドウを画面上に配置したり、実単位を論理ピクセル単位に変換したりする必要があるアプリケーションに便利なプロパティがいくつかあります。CurrentScreen.qml(これはwindow.qmlにインラインで表示されるか、qmlツールで単独で実行できる)は単にプロパティ値を表示し、スプラッシュスクリーンはそれらを使ってウィンドウをスクリーンの中央に配置する。
x: (Screen.width - splashImage.width) / 2 y: (Screen.height - splashImage.height) / 2
Window がItem や別の Window の中に入れ子になっている場合、内側の Window は外側の Window のための一時的なものになります(詳しくはWindow を参照してください)。しかし、無関係なピアとして複数のトップレベルウィンドウを作成したい場合は、この例のように、視覚的でないQtObject ルートアイテムの中に作成することができます。
© 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.