前言:

QML是一种描述性的脚本语言,文件格式以.qml结尾。语法格式非常像CSS(参考后文具体例子),但又支持javascript形式的编程控制。我个人认为它结合了QtDesigner
UI和QtScript的优点。QtDesigner可以设计出·ui界面文件,但是不支持和Qt原生C++代码的交互。不过也没关系,本身MVC分离了最好。

QtScript可以和Qt原生代码进行交互,但是有一个缺点,如果要在脚本中创建一个继承于QObject的图形对象非常不方便,只能在Qt代码中创建图形对象,然后从QtScript中进行访问。而QML可以在脚本里创建图形对象,并且支持各种图形特效,以及状态机等,同时又能跟Qt写的C++代码进行方便的交互,使用起来非常方便。

一般使用C++编写计算密集型模块,作为object插件的形式被QML使用,再使用JavaScript编写逻辑模块,做到模块分离。

移植QtSameGame:

QtSameGame在Qt5-Sample帮助页

QtSameGame在Qt5-Sample里面不是单独的工程创立的,不能原班移植。参考这篇文章:一步一步学Qt(Qt Quick)/qml 开发第五篇,建立一个基于Qt Quick Controls1.2
的工程。不能基于QML,不知道为何。

  依照 参考文章里面的指示添加Content里面的文件,修改:

    ApplicationWindow {
//Rectangle {

可以编译运行。

但是失去了state属性,又一次修改为

    //ApplicationWindow {
Rectangle {

程序可以正常运行

可能性错误:During sturtup program exited with code 0xc0000139

解决方案:分清MinGW的DLL文件和Qt5里面的Dll文件;

若使用了第三方库,用所使用的QT版本重新编译一次,如qwt这样的第三方的库;

注意:

将QML和其中的图片放入资源中,这里引用QML的时候需要以qrc开头,否则访问不到图片文件.

资源添加过程中在哪个位置加入是个问题.

争议之处:

    import "content/samegame.js" as Logic

使用JS作为控制系统效率问题?逻辑与计算分离。

参考文章:

Rectangle     属性列表页

ApplicationWindow属性页

QML官方系列教程——Using the Qt Quick Particle System使用粒子系统

QML官方系列教程——Scalability 使用ApplicationWindow:适配不同分辨率设备。

Qt官方教程系列,此系列翻译得较为详细,非常值得参考:Qt官方教程系列

Qt Quick新特性概览:最明显的就是新的QtQuick.Controls模块的引入

此文章介绍了:在窗口部件中嵌入Qt Quick

最终我们为在一个现有的基于窗口部件的应用程序中包含一个Qt Quick 2场景添加了支持。这是通过使用新的QWidget::createWindowContainer()函数来嵌入一个QQuickWindow的。

QML范例详解:使用JS编写控制系统,使用C++进行计算。

Rectangle详细解释

移植开源QT软件-SameGame的更多相关文章

  1. 开源GIS软件初探

    谈到GIS软件,首先让我们想到的便是GIS界的龙头大哥ESRI公司旗下的ArcGIS产品,从最初接触的version 9.2到如今的version 10.1,其发展可谓风生水起.MapInfo软件也不 ...

  2. qt-5.6.0 移植之qt源码编译

    其实这只是给自己看的一个configure选项笔记,没有太多的东西. 首先: 下载qt5.6的源码: 地址: http://download.qt.io/archive/qt/5.6/ 下载完解压: ...

  3. 这13个开源GIS软件,你了解几个?【转】

    泰伯网有看点的空间地理信息资讯都在这,你还在等什么? 这些开源GIS软件,你了解几个?本文内容部分来源于一份罗列了关于GIS软件应用的文章,笔者将其编译整合. 地理信息系统(Geographic In ...

  4. 13个开源GIS软件 你了解几个?

    地理信息系统(Geographic Information System,GIS)软件依赖于覆盖整个地球的数据集.为处理大量的 GIS 数据及其格式,编程人员创建了若干开源库和 GIS 套件. GIS ...

  5. [转]这13个开源GIS软件,你了解几个?

    这些开源GIS软件,你了解几个?本文内容部分来源于一份罗列了关于GIS软件应用的文章,笔者将其编译整合. 地理信息系统(Geographic Information System,GIS)软件依赖于覆 ...

  6. 推荐优秀的开源GIS软件

    推荐优秀的开源GIS软件(以后会补充) 从GIS入门到现在,我已经接触不少优秀的GIS软件,这里列出我使用过优秀的开源GIS软件. 桌面GIS软件: Qgis(基于Qt使用C++开发的跨平台桌面软件, ...

  7. QT入门学习笔记1:为什么要选QT及QT软件下载

    为什么选择QT? Qt突出的优势: ◆ Qt 是基于 C++ 的一种语言扩展(Extention) C/C++ 目前还是一种很多人都在学习的语言. Qt的好处就在于Qt本身可以被称作是一种 C++ 的 ...

  8. 关于基于GDAL库QT软件平台下C++语言开发使用说明

    背景前提 地理空间数据抽象库(GDAL)是一个用于读取和编写栅格和矢量地理空间数据格式的计算机软件库,由开源地理空间基金会在许可的X / MIT风格免费软件许可下发布. 作为一个库,它为调用应用程序提 ...

  9. 快速全面了解QT软件界面开发技术

    快速全面了解QT软件界面开发技术     目录 前言 一. 学习QT可能的目的是什么? 只想体验一下QT? 当前的项目选择了用QT. 为将来做QT技术储备. 二. QT的核心技术优势是什么? QT在软 ...

随机推荐

  1. eas之action的创建

    protected KDWorkButton btnFileManage;   protected ActionFileManage actionFileManage = null;      pub ...

  2. 【剑指Offer】37、数字在排序数组中出现的次数

      题目描述:   统计一个数字在排序数组中出现的次数.例如,输入排序数组{1,2,3,3,3,3,4,5}和数字3,由于数字3在该数组中出现了4次,所以函数返回4.   解题思路:   既然输入的数 ...

  3. font-size:0消除元素间距

    容易发现,inline-block元素之间会有间距, <!DOCTYPE html> <html> <head> <title></title&g ...

  4. Docker创建Mysql容器并通过命令行连接到容器

    拉取网易蜂巢的mysql-server:5.6 docker pull hub.c.163.com/nce2/mysql:5.6 创建mysql5.6容器 1master+3个slave docker ...

  5. Java 实现线程安全的三种方式

    一个程序在运行起来的时候会转换成进程,通常含有多个线程. 通常情况下,一个进程中的比较耗时的操作(如长循环.文件上传下载.网络资源获取等),往往会采用多线程来解决. 比如显示生活中,银行取钱问题.火车 ...

  6. BZOJ 3329 Xorequ (数位DP、矩阵乘法)

    手动博客搬家: 本文发表于20181105 23:18:54, 原地址https://blog.csdn.net/suncongbo/article/details/83758728 题目链接 htt ...

  7. 组合数性质求K个数选取i*j个数分成j组的方案数

    分析:设方案数为ANS,C代表组合数: ANS=(C[K,I]*C[K-I,I][K-2*I,I]*...*C[K-(J-1)*I,I])/(J!); 也即: ANS=C[K,I*J]*(C[I*J, ...

  8. 0926mysql join的原理

    转自 http://www.cnblogs.com/shengdimaya/p/7123069.html MySQL JOIN原理   先看一下实验的两张表: 表comments,总行数28856 表 ...

  9. Android获取设备屏幕宽高像素值的两个方法

    private void get1() { Resources resources = this.getResources(); DisplayMetrics dm = resources.getDi ...

  10. netstat命令介绍-要用熟

    这篇文章写的不错: http://www.cnblogs.com/CheeseZH/p/5169498.html 关注Linux的系统状态,主要从两个角度出发,一个角度是系统正在运行什么服务(ps命令 ...