8

プロジェクトのデフォルト ウィンドウを変更しようとしていますが、うまくいきません。QtQuick 2.0 を使用しています。QtQuick.Window 2.0 をインポートして、Window{} を Rectangle{} の代わりにルート オブジェクトとして作成しようとしましたが、ウィンドウ オブジェクトをルートとして許可しません。次のエラーが表示されます。

QQuickView only supports loading of root objects that derive from QQuickItem. 

If your example is using QML 2, (such as qmlscene) and the .qml file you 
loaded has 'import QtQuick 1.0' or 'import Qt 4.7', this error will occur. 

To load files with 'import QtQuick 1.0' or 'import Qt 4.7', use the 
QDeclarativeView class in the Qt Quick 1 module.

ウィンドウのタイトルを変更する方法についてのアイデアはありますか? Qt 5.1.1 を使用しています。

4

2 に答える 2

2

Qt 5.1.1 に同梱されている「Qt クイック コントロール - ギャラリー」サンプルが良い例です。次のコードは、「Qt Quick 2 アプリケーション (ビルトイン タイプ)」テンプレートに基づくプロジェクト構造を想定しています。

main.qmlでは、次を使用します。

ApplicationWindow {
    title: "Component Gallery"
...

main.cppでは、次を使用します。

#include <QtQml>
#include <QtQuick/QQuickView>
#include <QtCore/QString>
#include <QtWidgets/QApplication>
#include "qtquick2applicationviewer.h"

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QQmlApplicationEngine engine("qml/YourProject/main.qml");
    QObject* topLevel = engine.rootObjects().value(0);
    QQuickWindow* window = qobject_cast<QQuickWindow*>(topLevel);
    window->show();
    return app.exec();
}
于 2013-12-03T18:14:27.537 に答える