このページでは

Window QML Type

新しい最上位ウィンドウを作成します。詳細...

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

ApplicationWindow

プロパティ

関連プロパティ

信号

方法

詳細説明

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

Windowは、Item内または別のWindow内で宣言できます。後者の場合、内側のWindowは自動的に外側のWindowに対して「一時的なもの」となり、外側の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 [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 プロパティを使用すると、1つのウィンドウ内にビジュアル子要素、リソース、およびその他のウィンドウを自由に組み合わせることができます。

データリストに別のウィンドウを割り当てると、そのネストされたウィンドウは、外側のウィンドウに対して「一時的な」ものとなります。

Item をデータリストに割り当てると、そのウィンドウは Window の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) の位置は、ウィンドウが 1 つしかない場合はScreen を基準とし、複数の画面からなる仮想デスクトップの場合はそれを基準とします。

注: すべてのウィンドウシステムが、最上位ウィンドウの位置の設定や照会をサポートしているわけではありません 。そのようなシステムでは、プログラムによるウィンドウの移動がまったく効果を発揮しない場合があり、現在の位置としてQPoint(0, 0) などの人工的な値が返されることがあります。

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

Window.x、Window.y の位置と画面の利用可能なサイズを示す図

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()、QScreen 、およびApplication 。

title : string

ウィンドウシステムにおけるウィンドウのタイトル。

ウィンドウシステムやウィンドウフラグによっては、ウィンドウのタイトルがウィンドウ装飾のタイトル領域に表示される場合があります。また、タスクスイッチャーなど、他のコンテキストにおいてウィンドウを識別するために、ウィンドウシステムによって使用されることもあります。

transientParent : QWindow

このウィンドウが一時的なポップアップとして表示される親ウィンドウ。

これは、ウィンドウマネージャーに対して、このウィンドウが一時的な親ウィンドウに代わるダイアログまたはポップアップであることを示すヒントです。通常、これは、一時的なウィンドウが最初に表示された際にその一時的な親ウィンドウの中央に配置されることや、親ウィンドウを最小化すると一時的なウィンドウも最小化されることなどを意味しますが、結果についてはプラットフォームによって多少異なります。

default property または専用のプロパティを介して、Itemまたは別のWindow内にWindowを宣言すると、transientParentプロパティが明示的に設定されていない限り、そのWindowを含むウィンドウとの一時的な親関係が自動的に設定されます。これは、Qt.createComponent またはQt.createQmlObject を介してWindowアイテムを作成する場合にも適用されますが、その際、parent 引数としてItemまたはWindowが渡されている必要があります。

一時的な親を持つ Window は、たとえ `visible ` プロパティが `true` に設定されていても、その一時的な親が表示されるまで表示されません。これは、前述の自動的な一時的な親関係についても同様です。 特に、ウィンドウの包含要素がItemである場合、その包含アイテムが視覚的な親階層を介してシーンに追加されるまで、ウィンドウは表示されません。transientParentをnull に設定すると、この挙動を上書きできます:

Window {
    // visible is false by default
    Window {
        transientParent: null
        visible: true
    }
}

ウィンドウをデフォルトでその一時的な親の上中央に配置させるためには、ウィンドウマネージャーによっては、Window::flags プロパティに適切なQt::WindowType (例:Qt::Dialog )を設定する必要がある場合もあります。

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

visibility : QWindow::Visibility

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

可視性とは、ウィンドウがウィンドウシステム上で「通常」、「最小化」、「最大化」、「全画面表示」、または「非表示」のいずれの状態として表示されるかを指します。

可視性を `AutomaticVisibility ` に設定すると、ウィンドウにデフォルトの表示状態が与えられます。これはプラットフォームによって `FullScreen ` または `Windowed ` となる場合があります。ただし、可視性プロパティを読み取る際には、常に実際の状態が返され、`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 」の「例 - ウィンドウとスクリーン」も参照してください 。

visible : bool

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

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

visibility で上書きされない限り、デフォルト値はfalse です。

「visibility」も参照してください 。

添付プロパティのドキュメント

Window.active : bool [read-only attached]

このアタッチドプロパティは、ウィンドウがアクティブであるかどうかを示します。Window アタッチドプロパティは、任意の Item にアタッチすることができます。

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

import QtQuick

Text {
    text: Window.active ? "active" : "inactive"
}

Window.activeFocusItem : Item [read-only attached]

このアタッチメントプロパティは、現在アクティブなフォーカスを持っているアイテム、またはアクティブなフォーカスを持つアイテムがない場合はnull を保持します。Windowアタッチメントプロパティは、任意のアイテムにアタッチすることができます。

Window.contentItem : Item [read-only attached]

このアタッチメントプロパティは、シーン内の非表示のルートアイテム、またはそのアイテムがウィンドウ内にない場合はnull を保持します。Windowアタッチメントプロパティは、任意のアイテムにアタッチすることができます。

Window.height : int [attached]

Window.width : int [attached]

これらのアタッチドプロパティは、アイテムのウィンドウのサイズを保持します。「Window」アタッチドプロパティは、どのアイテムにもアタッチすることができます。

Window.visibility : QWindow::Visibility [read-only attached]

このアタッチドプロパティは、ウィンドウがウィンドウシステム上で現在、通常表示、最小化、最大化、全画面表示、または非表示のいずれの状態にあるかに関係なく保持されます。Window アタッチドプロパティは、任意のItemに設定できます。アイテムがいずれのウィンドウにも表示されていない場合、その値はHidden となります。

「 visible 」および「visibility 」も参照してください 。

Window.window : Window [attached]

このアタッチドプロパティは、アイテムのウィンドウを保持します。Window アタッチドプロパティは、どのアイテムにもアタッチすることができます。

シグナルのドキュメント

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 引数には、1つの辺、または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.