项目描述:
QML作为Qt重点推广的一种界面编辑方式,编程的方法肯定不可以只停留在使用代码来进行编辑。这样会将编程效率降低。在Qt6.0 以后对于QML文件可以使用编辑器来编辑。
编程方式:
使用QWidget和Qml混合编程。
创建常规的QWidget项目
加载一个qml的文件并将其显示在对应的widget界面
对qml文件进行简单的操作,来看程序的运行结果
到这里对qml就有了大致的了解。后面将会重点学习 使用Qt Quick Designer 和qml语法。
加载方式1:
/*
这种方式是加载以 Window为跟对象的 QML 文件,QML 拥有窗口的完整控制权,可以直接设置标题、窗口尺寸等属性。
*/
#include <QGuiApplication>
//Qt += qml DEFINES += QT_QML_DEBUG_NO_WARNING
#include <QQmlApplicationEngine>
int main(int argc, char *argv[]) {
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
if (engine.rootObjects().isEmpty()) {
return -1;
}
return app.exec();
}
加载方式2
/*
使用 QQuickView 显示 QML 文件,对窗口的控制权(标题、窗口尺寸)是在 C++代码中,QML 文件是以 Item (及 以Item为根的组件)作为根对象。
*/
#include <QGuiApplication>
// Qt+= quick
#include <QQuickView>
int main(int argc, char *argv[]) {
QGuiApplication app(argc, argv);
QQuickView *view = new QQuickView;
view->setResizeMode(QQuickView::SizeRootObjectToView);
view->setSource(QUrl(QStringLiteral("qrc:/main.qml")));
view->show();
return app.exec();
}
加载方式3
#include <QGuiApplication>
// QT += quickwidgets
#include <QQuickWidget>
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
QQuickWidget *view = new QQuickWidget;
view->setSource(QUrl::fromLocalFile("myqmlfile2.qml"));
view->show();
return a.exec();
}