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. Solr4.8.0源码分析(2)之Solr的启动(一)

    上文写到Solr的启动过程是在SolrDispatchFilter的init()里实现,当Tomcat启动时候会自动调用init(); Solr的启动主要在 this.cores = createCo ...

  2. 转:postgresql:pg_restore: [archiver] input file does not appear to be a valid archive的解决方法

      使用ps_restore恢复备份数据库出错:pg_restore: [archiver] input file does not appear to be a valid archive 使用pg ...

  3. 转:嵌入式linux启动时运行的inittab文件

    嵌入式系统下的linux启动配置文件,不同与普通的PC linux启动配置,启动相关文件与文件的内容也要少得多.嵌入式系统下的linux启动过程一般是:     1 在bootloader中制定各种要 ...

  4. 突然间,对JAVA也找到点感觉了。

    书上没有那段代码,我自己修修补补弄完全了呢.... 就是感觉体系有点宏大,不要急,慢慢玩~!~~ 这个世界很精彩哟~~: QuizCard.java package QuizCard.sky.com; ...

  5. h.264的POC计算

    本文参考自http://wenku.baidu.com/link?url=ZPF0iSKzwLQg_8K02pnnd_-Zd6ISnsOGWsGYb98ucLkELZO4nOv-X-v2GKLzI3r ...

  6. h.264 fast,1/2,1/4像素运动估计与插值处理

    Hadamard Transform 在1/2,1/4像素运动估计这一阶段中,对于像素残差,可以选择采用哈达玛变换来代替离散余弦变换进行高低频的分离. 优点:哈达玛矩阵全是+1,-1,因此只需要进行加 ...

  7. KEIL, a Smart Comliler

    KEIL是一个神的编译器.举一二例来说明: 1. 编译器出现WARNING"expression with possibly no effect",是提示你当前语在正做无用功,如在 ...

  8. Actor模型

    Actors模型(Actor model)首先是由Carl Hewitt在1973定义, 由Erlang OTP (Open Telecom Platform) 推广,其 消息传递更加符合面向对象的原 ...

  9. -_-#【Angular】依赖注入

    AngularJS学习笔记 var BoxCtrl = function($scope, $element) { } var str = BoxCtrl.toString().replace(/\s/ ...

  10. COCI2014-2015CONTEST#7——POLICE

    http://www.hsin.hr/coci/archive/2014_2015/contest7_tasks.pdf [题目描述] 有N个书架,每个书架可以容纳M本书.给出了若干本书,每本书有一个 ...