QQuickView Class

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

Header: #include <QQuickView>
CMake: find_package(Qt6 REQUIRED COMPONENTS Quick)
target_link_libraries(mytarget PRIVATE Qt6::Quick)
qmake: QT += quick
Inherits: 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() を呼び出してください。

プロパティ Documentation

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)

uri およびtypeName で指定された要素と親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)

Reimplements: (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)

再リンプルメント: (QMouseEvent *event):QQuickWindow::mousePressEvent(QMouseEvent *event)。

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

再リプルメント: (QMouseEvent *event):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 プロパティ用のノーティファイア・シグナル。

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