QQmlApplicationEngine搭配Window

QQuickView搭配Item
两者不同之处在于
使用QQuickView显示QML文档,对窗口的控制权(比如设置窗口标题、Icon、窗口的最小尺寸等)在C++代码;而使用QQmlApplicationEngine加载以Window为根对象的QML文档,QML文档则拥有窗口的完整控制权,可以直接设置标题、窗口尺寸等属性。
1、QQmlApplicationEngine搭配Window启动方式:
main.c文件
  1. int main(int argc, char *argv[])
  2. {
  3. QApplication app(argc, argv);
  4. QQmlApplicationEngine engine;
  5. engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
  6. return app.exec();
  7. }
main.qml文件
  1. ApplicationWindow {
  2. title: qsTr("Hello World")
  3. width: 640
  4. height: 480
  5. visible: true
  6. menuBar: MenuBar {
  7. Menu {
  8. title: qsTr("&File")
  9. MenuItem {
  10. text: qsTr("&Open")
  11. onTriggered: messageDialog.show(qsTr("Open action triggered"));
  12. }
  13. MenuItem {
  14. text: qsTr("E&xit")
  15. onTriggered: Qt.quit();
  16. }
  17. }
  18. }
  19. MainForm {
  20. anchors.fill: parent
  21. button1.onClicked: messageDialog.show(qsTr("Button 1 pressed"))
  22. button2.onClicked: messageDialog.show(qsTr("Button 2 pressed"))
  23. button3.onClicked: messageDialog.show(qsTr("Button 3 pressed"))
  24. }
  25. MessageDialog {
  26. id: messageDialog
  27. title: qsTr("May I have your attention, please?")
  28. function show(caption) {
  29. messageDialog.text = caption;
  30. messageDialog.open();
  31. }
  32. }
  33. }
窗口

2、QQuickView搭配Item
main.c文件
  1. #include <QApplication>
  2. #include <QQuickView>
  3. #include <QGuiApplication>
  4. #include <QQmlApplicationEngine>
  5. int main(int argc, char *argv[])
  6. {
  7. QGuiApplication app(argc, argv);
  8. QQuickView viewer;
  9. viewer.setResizeMode(QQuickView::SizeRootObjectToView);
  10. viewer.setSource(QUrl("qrc:///main.qml"));
  11. viewer.show();
  12. return app.exec();
  13. }
main.qml文件
  1. import QtQuick 2.4
  2. import QtQuick.Controls 1.3
  3. import QtQuick.Window 2.2
  4. import QtQuick.Dialogs 1.2
  5. Rectangle{
  6. width: 320;
  7. height: 240;
  8. }

Qt Quick App的两种启动模式的更多相关文章

  1. UEFI与 Legacy BIOS两种启动模式详解

    (1). UEFI启动模式 与 legacy启动模式 legacy启动模式: 就是这么多年来PC一直在使用的启动方式(从MBR中加载启动程序),UEFI BIOS作为一种新的BIOS自然也应该兼容这种 ...

  2. qml-main.cpp中的两种启动Qt Quick App模式

     现有两种启动Qt Quick App 模式: QQmlApplicationEngine搭配Window. QQuickView搭配Item.  qt默认使用第一种方法. QQmlApplicati ...

  3. Android Activity 的四种启动模式 lunchMode 和 Intent.setFlags();singleTask的两种启动方式。

    原文:Android Activity 的四种启动模式 lunchMode 和 Intent.setFlags();singleTask的两种启动方式. Android Activity 的四种启动模 ...

  4. 一步一步学FRDM-KE02Z(一):IAR调试平台搭建以及OpenSDA两种工作模式设置

    摘要:FRDM-KE02Z是飞思卡尔公司较为新的微控制器,学习和开发资料较少.从本篇开始会陆续介绍其相关的开发流程,并完成一个小型的工程项目.这是本系列博客的第一篇,主要介绍开发环境IAR for A ...

  5. Spark on YARN两种运行模式介绍

    本文出自:Spark on YARN两种运行模式介绍http://www.aboutyun.com/thread-12294-1-1.html(出处: about云开发)   问题导读 1.Spark ...

  6. IIS在ASP.NET Core下的两种部署模式

    KestrelServer最大的优势体现在它的跨平台的能力,如果ASP.NET CORE应用只需要部署在Windows环境下,IIS也是不错的选择.ASP.NET CORE应用针对IIS具有两种部署模 ...

  7. Vue路由器的hash和history两种工作模式 && Vue项目编译部署

    1 # 一.Vue路由器的两种工作模式 2 # 1.对于一个uri来说,什么是hash值? 井号及其后面的内容就是hash值. 3 # 2.hash值不会包括含在HTTP请求中,即:hash值不会带给 ...

  8. angular2系列教程(十)两种启动方法、两个路由服务、引用类型和单例模式的妙用

    今天我们要讲的是ng2的路由系统. 例子

  9. Android Activity的4种启动模式详解(示例)

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/5233269.html 先介绍下Android对Activity的管理,Android采用Task来管理多个A ...

随机推荐

  1. 玩玩SPARK

    没有SCALA的东东,玩不起哈. ./spark-shell 从文件生成一个DRIVER? val logFile = sc.textFile("hdfs://192.168.14.51:9 ...

  2. ISO7816协议的几个关键时间特性

    PPS: PPS是在PCK起始延后12个etu后完成,这个在2004版中是16etu 进行错误提示时,错误提示的延时时间是1etu到2etu 当D=64时,终端必须确保当前发出的第一个字符和最后一个接 ...

  3. 用SQL求1到N的质数和

    今天在百度知道中,遇到了一位朋友求助:利用sql求1到1000的质数和.再说今天周五下午比较悠闲,我就在MSSQL 2008中写了出来,现在分享在博客中,下面直接贴代码: declare @num i ...

  4. 两个bootstrap插件bootstrap-select和bootstrap-paginator

    基于bootstrap的选择器 http://silviomoreto.github.io/bootstrap-select/ <label for="androids" c ...

  5. SherlockactionBar中手动调用onCreateOptionsMenu的办法

    我们有时候要做做事的时候,要提前拿到 ActionBar中的menuItem,但是,会出现为空的情况.怎么办呢? 比如这里: @Override public boolean onCreateOpti ...

  6. 挂载nfs系统问题之: Root-NFS: Server returned error -13 while mounting

    今天换了个路由器,由于是自动分的IP,现在的IP和之前的不在同一网段.以前是192.168.0.xxx,现在是192.168.1.xxx.本以为将serverip,ipaddr,bootargs这些参 ...

  7. Understanding the Android Life Cycle

    Problem Android apps do not have a “main” method; you need to learn how they get started and how the ...

  8. openSource clouds

    学习当前较主流的开源云基础设施管理软件by Ruiy summarize publish; 我擦,有不时候Ruiy干事也就那吊风格,啥事也就那么随口一说,你们太sensitivity,同网络延迟对存储 ...

  9. 绘图(CGContext)

    转自 http://blog.csdn.net/zhenyu5211314/article/details/24230581 0 CGContextRef context = UIGraphicsGe ...

  10. CAD INSTALL PROBLEMS

    Windows8操作系统,没有重装系统前安装Autodesk软件是完全没有问题的 把电脑还原系统后再安装Autodesk软件提示缺少LiteHtml.dll文件了 兼容性改为XP3,然后点管理员身份运 ...