QQuickView Class

QQuickView クラスは、Qt Quick ユーザー・インターフェースを表示するためのウィンドウを提供します。詳細...

ヘッダー #include <QQuickView>
CMake: find_package(Qt6 REQUIRED COMPONENTS Quick)
target_link_libraries(mytarget PRIVATE Qt6::Quick)
qmake: QT += quick
継承: QQuickWindow

パブリックな型

enum ResizeMode { SizeViewToRootObject, SizeRootObjectToView }
enum Status { Null, Ready, Loading, Error }

プロパティ

パブリック機能

QQuickView(QWindow *parent = nullptr)
QQuickView(QQmlEngine *engine, QWindow *parent)
QQuickView(const QUrl &source, QWindow *parent = nullptr)
(since 6.7) QQuickView(QAnyStringView uri, QAnyStringView typeName, QWindow *parent = nullptr)
virtual ~QQuickView() override
QQmlEngine *engine() const
QList<QQmlError> errors() const
QSize initialSize() const
QQuickView::ResizeMode resizeMode() const
QQmlContext *rootContext() const
QQuickItem *rootObject() const
void setResizeMode(QQuickView::ResizeMode)
QUrl source() const
QQuickView::Status status() const

パブリックスロット

(since 6.7) void loadFromModule(QAnyStringView uri, QAnyStringView typeName)
void setInitialProperties(const QVariantMap &initialProperties)
void setSource(const QUrl &url)

シグナル

void statusChanged(QQuickView::Status status)

再実装された保護された関数

virtual void keyPressEvent(QKeyEvent *e) override
virtual void keyReleaseEvent(QKeyEvent *e) override
virtual void mouseMoveEvent(QMouseEvent *e) override
virtual void mousePressEvent(QMouseEvent *e) override
virtual void mouseReleaseEvent(QMouseEvent *e) override

詳しい説明

これはQQuickWindow の便利なサブクラスで、メインソースファイルの URL を与えると、自動的に QML シーンをロードして表示します。あるいは、QQmlComponent を使って独自のオブジェクトをインスタンス化し、手動で設定したQQuickWindow に配置することもできます。

典型的な使い方

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    QQuickView *view = new QQuickView;
    view->setSource(QUrl::fromLocalFile("myqmlfile.qml"));
    view->show();
    return app.exec();
}

QQuickView による QML の読み込みと実行に関連するエラーを受け取るには、statusChanged() シグナルに接続し、QQuickView::Error を監視します。エラーはQQuickView::errors() 経由で取得できます。

QQuickViewはビューとルート・オブジェクトのサイズも管理します。デフォルトでは、resizeModeSizeViewToRootObject で、コンポーネントをロードし、ビューのサイズにリサイズします。また、resizeModeSizeRootObjectToView に設定することもできます。この場合、ビューのサイズがルート・オブジェクトのサイズに変更されます。

C++型の属性をQMLに公開するQQuickWidgetも参照してください

メンバ型ドキュメント

enum QQuickView::ResizeMode

この列挙型は、ビューのサイズを変更する方法を指定します。

定数説明
QQuickView::SizeViewToRootObject0ビューはQMLのルートアイテムのサイズを変更する。
QQuickView::SizeRootObjectToView1ビューは自動的にルートアイテムのサイズをビューのサイズに変更します。

enum QQuickView::Status

QQuickView のロード状態を指定する。

定数説明
QQuickView::Null0このQQuickView にはソースが設定されていません。
QQuickView::Ready1このQQuickView は、QML コンポーネントをロードして作成しました。
QQuickView::Loading2このQQuickView はネットワーク・データをロードしています。
QQuickView::Error3つ以上のエラーが発生しました。エラーのリストを取得するには、errors() を呼び出してください。

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

resizeMode : ResizeMode

このプロパティはビューがウィンドウの内容をリサイズするかどうかを保持する。

このプロパティがSizeViewToRootObject (デフォルト)に設定されている場合、ビューはQMLのルートアイテムのサイズにリサイズされます。

このプロパティがSizeRootObjectToView に設定されている場合、ビューは自動的にルートアイテムのサイズをビューのサイズに変更します。

アクセス関数:

QQuickView::ResizeMode resizeMode() const
void setResizeMode(QQuickView::ResizeMode)

initialSize()も参照

source : QUrl

このプロパティは QML コンポーネントのソースの URL を保持します。

特に、ローカルファイルシステムからファイルを読み込む場合にはQUrl::fromLocalFile() を使用してください。

ソースの URL を設定すると、URL が現在の値から変更されていなくても、QML コンポーネントがインスタンス化されることに注意してください。

アクセス関数

QUrl source() const
void setSource(const QUrl &url)

[read-only] status : const Status

コンポーネントの現在のstatus

アクセス関数:

QQuickView::Status status() const

通知シグナル:

void statusChanged(QQuickView::Status status)

メンバ関数ドキュメント

[explicit] QQuickView::QQuickView(QWindow *parent = nullptr)

与えられたparent で QQuickView を構築します。parent のデフォルト値は 0 です。

QQuickView::QQuickView(QQmlEngine *engine, QWindow *parent)

与えられたQMLengineparent を用いてQQuickViewを構築します。

注意:この場合、QQuickViewは与えられたengine オブジェクトを所有しません。エンジンを破棄するのは呼び出し側の責任です。もしengine がビューより先に削除された場合、status() はQQuickView::Error を返します。

Statusstatus()、errors()も参照してください

[explicit] QQuickView::QQuickView(const QUrl &source, QWindow *parent = nullptr)

与えられた QMLsourceparent を用いて QQuickView を構築します。parent のデフォルト値はnullptr です。

[explicit, since 6.7] QQuickView::QQuickView(QAnyStringView uri, QAnyStringView typeName, QWindow *parent = nullptr)

uritypeName で指定された要素と親parent を持つ QQuickView を構築します。parent のデフォルト値はnullptr です。

この関数は Qt 6.7 で導入されました。

loadFromModuleも参照してください

[override virtual noexcept] QQuickView::~QQuickView()

QQuickView を破壊する。

QQmlEngine *QQuickView::engine() const

QML コンポーネントのインスタンス化に使用するQQmlEngine へのポインタを返します。

QList<QQmlError> QQuickView::errors() const

最後のコンパイルまたは作成操作で発生したエラーのリストを返します。ステータスが Error でない場合は、空のリストが返されます。

QSize QQuickView::initialSize() const

ルート・オブジェクトの初期サイズを返します。

resizeMode が QQuickItem::SizeRootObjectToView の場合、ルートオブジェクトはビューのサイズにリサイズされます。initialSize には、リサイズ前のルートオブジェクトのサイズが含まれます。

[override virtual protected] void QQuickView::keyPressEvent(QKeyEvent *e)

再実装:QQuickWindow::keyPressEvent(QKeyEvent *e).

[override virtual protected] void QQuickView::keyReleaseEvent(QKeyEvent *e)

再実装:QQuickWindow::keyReleaseEvent(QKeyEvent *e).

[slot, since 6.7] void QQuickView::loadFromModule(QAnyStringView uri, QAnyStringView typeName)

uritypeName で特定される QML コンポーネントを読み込みます。 コンポーネントが QML ファイルによってバックアップされている場合、source はそれに応じて設定されます。C++ で定義された型については、source は空になります。

このメソッドが呼ばれる前にsource が設定されていた場合は、クリアされます。

このメソッドを同じuritypeName で複数回呼び出すと、QML コンポーネントは再定義されます。

この関数は Qt 6.7 で導入されました。

setSourceQQmlComponent::loadFromModuleQQmlApplicationEngine::loadFromModuleも参照して ください。

[override virtual protected] void QQuickView::mouseMoveEvent(QMouseEvent *e)

再実装:QQuickWindow::mouseMoveEvent(QMouseEvent *event)。

[override virtual protected] void QQuickView::mousePressEvent(QMouseEvent *e)

再実装:QQuickWindow::mousePressEvent(QMouseEvent *event)。

[override virtual protected] void QQuickView::mouseReleaseEvent(QMouseEvent *e)

再実装:QQuickWindow::mouseReleaseEvent(QMouseEvent *event)。

QQmlContext *QQuickView::rootContext() const

この関数はコンテキスト階層のルートを返します。QMLの各コンポーネントはQQmlContext でインスタンス化されています。QQmlContext はQMLの各コンポーネントにデータを渡すために必要不可欠なものです。QMLでは、コンテキストは階層的に配置され、この階層はQQmlEngine によって管理されます。

QQuickItem *QQuickView::rootObject() const

ビューのルートitem を返します。

[slot] void QQuickView::setInitialProperties(const QVariantMap &initialProperties)

QQuickView::setSource() を呼び出した後に QML コンポーネントが初期化される初期プロパティinitialProperties を設定します。

    QScopedPointer<QQuickView> view { new QQuickView };
    view->setInitialProperties({"x, 100"}, {"width", 50});
    view->setSource(QUrl::fromLocalFile("myqmlfile.qml"));
    view->show();

注意: この関数はトップレベルのプロパティを初期化するためにのみ使用できます。

注意 :この関数はコンポーネントがReady になった後は何の効果もないため、常にsetSource の前に呼び出す必要があります。

QQmlComponent::createWithInitialProperties()も参照してください

[slot] void QQuickView::setSource(const QUrl &url)

ソースをurl に設定し、QML コンポーネントをロードしてインスタンス化します。

特に、ローカルファイルシステムからファイルを読み込む場合はQUrl::fromLocalFile() を使用してください。

同じ URL でこのメソッドを複数回呼び出すと、QML コンポーネントは再インスタンス化されます。

注: source プロパティのセッター関数です。

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

QUrl QQuickView::source() const

設定されていれば、ソース URL を返す。

注: プロパティ・ソースのゲッター関数。

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

[signal] void QQuickView::statusChanged(QQuickView::Status status)

このシグナルは、コンポーネントの現在のstatus が変更されたときに発行される。

注: プロパティstatus に対するノーティファイアシグナル。

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