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. java正则表达式一:基本使用

    java正则表达式主要涉及三个类:java.util.regex.Matcher.java.util.regex.Pattern.java.util.regex.PatternSyntaxExcept ...

  2. C51与汇编语言混合编程

    函数内部混合编程 若想在C语言函数内部使用汇编语言,应使用以下Cx51编译器控制命令: #pragma asm ; Assembly code #pragma endasm  功能作用:asm和end ...

  3. Hive SQL运行状态监控(HiveSQLMonitor)

    引言   目前数据平台使用Hadoop构建,为了方便数据分析师的工作,使用Hive对Hadoop MapReduce任务进行封装,我们面对的不再是一个个的MR任务,而是一条条的SQL语句.数据平台内部 ...

  4. radio 和checkbox与文字对齐问题

    今天在项目中遇到radio和文字对齐问题(ie不明显,火狐和google比较明显),在此记录. 1.浏览器默认文字大小为14px,因而当文字字体为14px时radio和checkbox与文字对齐良好, ...

  5. word页面不对齐,如何解决?

    http://blog.163.com/haibianfeng_yr/blog/static/34572620201157105439516/

  6. 迁移ADT/ANT构建的Android项目至Gradle,a walk through。

    LibModule 配置更新 9 months ago   app 配置更新 9 months ago   gradle/wrapper 配置更新 9 months ago   screenshots ...

  7. php 中的$argv与$argc

    例如 php test.php as a joke print_r($argv); echo $argc; print_r($argv); array_shift($argv); echo $argc ...

  8. HDU H204 阿牛的EOF牛肉串

    阿牛的EOF牛肉串 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  9. SKAction类

    继承自 NSObject 符合 NSCodingNSCopyingNSObject(NSObject) 框架  /System/Library/Frameworks/SpriteKit.framewo ...

  10. Cadence 电源完整性仿真实践(一)

    软件版本号:Cadence 16.5 使用工具:Allegro PCB PI Option XL Power Integrity 使用资源:仿真实例下载地址:http://download.csdn. ...