Qt-Quick Application项目中Item\Rectangle不显示
Qt版本:5.12
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 //}