このページでは

Window QML Type

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

Import Statement: import QtQuick
In C++: QQuickWindow
Inherited By:

ApplicationWindow

プロパティ

付属物件

信号

方法

詳細説明

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"
    }
}

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

height : int

width : int

x : int

y : int

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

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

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

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

maximumHeight : int

maximumWidth : int

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

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

minimumHeight : int

minimumWidth : int

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

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

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()、QScreenApplicationも参照のこと

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

ウィンドウがvisible でない場合、その可視性はHidden です。visibility をHidden に設定することは、visiblefalse に設定することと同じです。

デフォルト値は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")
    }
}

visibleQt Quick の例 - Window と Screenも参照して ください。

visible : bool

ウィンドウが画面上に表示されているかどうか。

visible を false に設定することは、visibilityHidden に設定することと同じです。

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

Window.width : int

これらのアタッチされたプロパティは、アイテムのウィンドウのサイズを保持する。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 ミリ秒間表示する。msec0 (デフォルト) の場合、ウィンドウが再びアクティブになるまで、 アラートは無期限に表示される。

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

void close()

ウィンドウを閉じる。

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

void hide()

ウィンドウを隠す。

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

show()も参照

void lower()

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

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

void raise()

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

ウィンドウを他のウィンドウより上に表示するように要求する。

void requestActivate()

ウィンドウをアクティブにする、つまりキーボードフォーカスを受けるように要求する。

void show()

ウィンドウを表示する。

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

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

void showFullScreen()

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

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

void showMaximized()

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

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

void showMinimized()

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

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

void showNormal()

ウィンドウを通常通り、つまり最大化も最小化もフルスクリーンもせずに表示する。

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

[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.