QQuickWidget直接就是个QWidget子类,你可以直接添加到用QtWidgets写的界面里去。
QQuickView得转换下才能添加到QtWidgets写的界面里。这是两者最主要的区别。底层的实现有差别,QQuickWidget和其他widgets结合更好。
界面如果是纯qml的,就用qquickview或者qqmlapplicationengine
QQuickView是一个便利类,可以方便的从一个qml文件创建视图。
QQmlApplicationEngine只能用于qml相关的应用,本身不会创建任何可视化元素,需要手工往qml文件添加。如果你使用Qt Quick里面的视觉item,你需要把qml里面加一个Window,然后将其放进去。
1、QQmlApplicationEngine的使用
int main(int argc, char *argv[]) { QApplication app(argc, argv); QQmlApplicationEngine engine; engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); return app.exec(); }
ApplicationWindow { title: qsTr("Hello World") width: 640 height: 480 visible: true menuBar: MenuBar { Menu { title: qsTr("&File") MenuItem { text: qsTr("&Open") onTriggered: messageDialog.show(qsTr("Open action triggered")); } MenuItem { text: qsTr("E&xit") onTriggered: Qt.quit(); } } } MainForm { anchors.fill: parent button1.onClicked: messageDialog.show(qsTr("Button 1 pressed")) button2.onClicked: messageDialog.show(qsTr("Button 2 pressed")) button3.onClicked: messageDialog.show(qsTr("Button 3 pressed")) } MessageDialog { id: messageDialog title: qsTr("May I have your attention, please?") function show(caption) { messageDialog.text = caption; messageDialog.open(); } } }
2、QQuickView的使用
#include <QApplication> #include <QQuickView> #include <QGuiApplication> #include <QQmlApplicationEngine> int main(int argc, char *argv[]) { QGuiApplication app(argc, argv); QQuickView viewer; viewer.setResizeMode(QQuickView::SizeRootObjectToView); viewer.setSource(QUrl("qrc:///main.qml")); viewer.show(); return app.exec(); }
import QtQuick 2.4 import QtQuick.Controls 1.3 import QtQuick.Window 2.2 import QtQuick.Dialogs 1.2 Rectangle{ width: 320; height: 240; }
3、QQuickWidget的使用(在qml中和QQuickView差不多,在qtwidget中就不一样了)
QQuickWidget *widget= new QQuickWidget; widget->setSource(QUrl::fromLocalFile("myqmlfile.qml")); widget->show();
c/c++开发分享C++开发使用QQuickView、QQmlApplicationEngine、QQuickWidget的关系地址:https://blog.csdn.net/hankern/article/details/107889266
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/597987.html