Window QML Type

新しいトップレベルウィンドウを作成します。詳細...

Import Statement: import QtQuick
In C++: QQuickWindow

プロパティ

付属プロパティ

シグナル

メソッド

詳細な説明

Window オブジェクトは Qt Quick シーン用の新しいトップレベルウィンドウを作成します。これは、QtQuick グラフィカルタイプで使用するためにウィンドウを自動的にセットアップします。

WindowはItemの内部、または別のWindowの内部で宣言することができます。この場合、内側のWindowは自動的に外側のWindowの「transient for」になり、外側のWindowをtransientParent 。この場合、内側のウィンドウは自動的に外側のウィンドウの「一時的な」ウィンドウになり、外側のウィンドウはそのウィンドウになります。ほとんどのプラットフォームではこの場合、ウィンドウは外側のウィンドウの中央に表示され、flags によって他のプラットフォーム依存の動作があるかもしれません。ネストされたウィンドウがアプリケーションのダイアログになる場合は、flagsQt.Dialog に設定する必要があります。

トップレベルQtObject の中に複数のウィンドウを宣言することもできます。

また、xy を設定またはバインドして、ウィンドウを画面上に明示的に配置することもできます。

ユーザーがウィンドウを閉じようとすると、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 )を使用してください。

プロパティ ドキュメント

height : int

width : int

x : int

y : int

ウィンドウの位置とサイズを定義します。

(x,y)位置は、Screen (1つしかない場合)、または仮想デスクトップ(複数のスクリーンの配置)に対する相対位置です。

注意: すべてのウィンドウシステムが、トップレベルのウィンドウ位置の設定や問い合わせをサポートしているわけではありません。そのようなシステムでは、プログラムでウィンドウを移動しても効果がないかもしれず、QPoint(0, 0) のような人工的な値が現在の位置に返されるかもしれない。

Window { x: 100; y: 100; width: 100; height: 100 }


minimumHeight : int

minimumWidth : int

ウィンドウの最小サイズを定義します。

これは指定された幅と高さ以下のリサイズを防ぐためのウィンドウマネージャへのヒントです。


maximumHeight : int

maximumWidth : int

ウィンドウの最大サイズを定義します。

これは指定された幅と高さ以上のリサイズを防ぐためのウィンドウマネージャへのヒントです。


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も参照して ください。


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 : variant

ウィンドウが関連付けられているスクリーン。

ウィンドウを表示する前に指定すると、明示的なウィンドウ位置が設定されていない限り、ウィンドウはそのスクリーンに表示される。値はQt.application.screens配列の要素でなければなりません。

注意: 基本となるネイティブ・ウィンドウが作成されるときに、ウィンドウが確実に希望のスクリーンと関連付けられるようにするには、このプロパティができるだけ早く設定され、その値の設定が延期されないようにしてください。これは、ウィンドウ・システムのない組み込みプラットフォームでは特に重要であり、1画面につき1つのウィンドウしか一度に許可されません。ウィンドウが作成された後にスクリーンを設定しても、新しいスクリーンが古いスクリーンと同じ仮想デスクトップの一部であれば、ウィンドウは移動しません。

QWindow::setScreen()、QWindow::screen()、QScreenQt.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 {
    // visible is false by default
    Window {
        transientParent: null
        visible: true
    }
}

ウィンドウがデフォルトでその一時的な親の上にセンタリングされるようにするには、ウィンドウ マネージャによっては、Window::flags プロパティを適切なQt::WindowTypeQt::Dialog など)で設定する必要があります。

parent()も参照してください


visibility : QWindow::Visibility

ウィンドウの画面占有状態。

visibilityは、ウィンドウがウィンドウシステムで通常、最小化、最大化、フルスクリーン、非表示のどれで表示されるべきかを示す。

visibilityをAutomaticVisibility に設定することは、ウィンドウにデフォルトの可視状態を与えることを意味し、プラットフォームによってはFullScreen またはWindowed 。しかし、visibilityプロパティを読み取るときは、常に実際の状態を取得し、決してAutomaticVisibility

ウィンドウが表示されていないとき、その可視性はHidden であり、可視性をHidden に設定することは、visiblefalse に設定することと同じです。

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.height : int

Window.width : int

これらの付属プロパティは、アイテムのウィンドウのサイズを保持する。Window 添付プロパティは、どのアイテムにも添付することができます。


Window.active : bool [read-only]

この付属プロパティはウィンドウがアクティブかどうかを示す。Window アタッチドプロパティは、どのアイテムにもアタッチできます。

以下は、ラベルが表示されているウィンドウのアクティブ状態を表示するようにラベルを変更する例です:

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.visibility : QWindow::Visibility [read-only]

このアタッチされたプロパティは、ウィンドウが現在ウィンドウシステムで通常、最小化、最大化、フルスクリーン、または非表示として表示されているかどうかを保持する。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 ミリ秒間表示します。msec0 (デフォルト) の場合、アラートはウィンドウが再びアクティブになるまで無期限に表示される。

アラート状態では、ウィンドウは、タスクバーのエントリを点滅させたり、バウンスさせるなどして、注意が必要であることを示す。


close()

ウィンドウを閉じる。

このメソッドが呼び出されたとき、またはユーザーがタイトル バー ボタンでウィンドウを閉じようとしたとき、closing シグナルが発行されます。ハンドラがない場合、またはハンドラが閉じる許可を取り消さない場合、ウィンドウはその後閉じます。QGuiApplication::quitOnLastWindowClosed プロパティがtrue で、他に開いているウィンドウがない場合、アプリケーションは終了します。


hide()

ウィンドウを隠す。

visiblefalse に、またはvisibilityHidden に設定するのと同じです。

show()も参照してください


lower()

ウィンドウ・システムのウィンドウを下げる。

ウィンドウを下げて他のウィンドウの下に表示するように要求します。


raise()

ウィンドウシステムのウィンドウを上げます。

他のウィンドウの上に表示されるようにウィンドウを上げることを要求します。


requestActivate()

ウィンドウをアクティブにする、すなわちキーボードフォーカスを受け取るように要求する。


show()

ウィンドウを表示する。

これはshowFullScreen()、showMaximized()、showNormal() を呼び出すのと同じである。

showFullScreen()、showMaximized()、showNormal()、hide()、QQuickItem::flags()も参照


showFullScreen()

ウィンドウをフルスクリーンで表示する。

visibilityFullScreen に設定するのと同じです。


showMaximized()

ウィンドウを最大化して表示します。

visibilityMaximized に設定するのと同じです。


showMinimized()

ウィンドウを最小化して表示します。

visibilityMinimized に設定するのと同じです。


showNormal()

ウィンドウを通常の状態、つまり最大化も最小化もフルスクリーンもしない状態で表示します。

visibilityWindowed に設定するのと同じです。


本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。