Qt-Quick Application项目中Item\Rectangle不显示

Qt版本:5.12  ,5.5,5.14.2

Qt Creator新建的Quick Application工程,然后把main.qml文件根部件Window改成了Item或者Rectangle都不行正常显示

import QtQuick 2.2

 

Item {

    width: 100; height: 100

}

然后才发现QQmlApplicationEngine不会自动创建根窗口,如果使用的是Qt Quick中的可视项,则需要将其放置在Window内,

但是QQuickView类是通过继承QQuickWindow来的,所以当给定主源文件的URL时,它会自动加载并显示QML场景

QQuickView类 👉 :  传送门

QQmlApplicationEngine类 👉 :  传送门

所以想要正常显示就需要

QQmlApplicationEngine + Window  或者 QQuickView + Item/Rectangle/...

注意:有人可能会问,那么QuickView + Window 可不可以呢? 嘿!嘿!嘿!嘿!

      它运行时会出现两个窗口,毕竟1+1=2

像这样:

//main.cpp file

int main(int argc, char *argv[])

{

    QGuiApplication app(argc, argv);

 

    QQmlApplicationEngine engine;

    const QUrl url(QStringLiteral("qrc:/main.qml"));

    engine.load(url);

 

    return app.exec();

}

 

//main.qml

Window {

    visible: true

    width: 100; height: 100

}

或者

//main.cpp file

int main(int argc, char *argv[])

{

    QGuiApplication app(argc, argv);

    QQuickView view;

    view.setSource( QUrl(QStringLiteral("qrc:///main.qml")));

    view.show();

    return app.exec();

}

 

//main.qml file

Item {

    width: 100; height: 100

}

//Rectangle { 

//    width: 100; height: 100

//}

 

from:https://blog.csdn.net/fancyop/article/details/103320440

posted @ 2023-01-30 19:58  imxiangzi  阅读(136)  评论(0编辑  收藏  举报