移植开源QT软件-SameGame
前言:
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里面不是单独的工程创立的,不能原班移植。参考这篇文章:一步一步学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作为控制系统效率问题?逻辑与计算分离。
参考文章:
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++进行计算。
移植开源QT软件-SameGame的更多相关文章
- 开源GIS软件初探
谈到GIS软件,首先让我们想到的便是GIS界的龙头大哥ESRI公司旗下的ArcGIS产品,从最初接触的version 9.2到如今的version 10.1,其发展可谓风生水起.MapInfo软件也不 ...
- qt-5.6.0 移植之qt源码编译
其实这只是给自己看的一个configure选项笔记,没有太多的东西. 首先: 下载qt5.6的源码: 地址: http://download.qt.io/archive/qt/5.6/ 下载完解压: ...
- 这13个开源GIS软件,你了解几个?【转】
泰伯网有看点的空间地理信息资讯都在这,你还在等什么? 这些开源GIS软件,你了解几个?本文内容部分来源于一份罗列了关于GIS软件应用的文章,笔者将其编译整合. 地理信息系统(Geographic In ...
- 13个开源GIS软件 你了解几个?
地理信息系统(Geographic Information System,GIS)软件依赖于覆盖整个地球的数据集.为处理大量的 GIS 数据及其格式,编程人员创建了若干开源库和 GIS 套件. GIS ...
- [转]这13个开源GIS软件,你了解几个?
这些开源GIS软件,你了解几个?本文内容部分来源于一份罗列了关于GIS软件应用的文章,笔者将其编译整合. 地理信息系统(Geographic Information System,GIS)软件依赖于覆 ...
- 推荐优秀的开源GIS软件
推荐优秀的开源GIS软件(以后会补充) 从GIS入门到现在,我已经接触不少优秀的GIS软件,这里列出我使用过优秀的开源GIS软件. 桌面GIS软件: Qgis(基于Qt使用C++开发的跨平台桌面软件, ...
- QT入门学习笔记1:为什么要选QT及QT软件下载
为什么选择QT? Qt突出的优势: ◆ Qt 是基于 C++ 的一种语言扩展(Extention) C/C++ 目前还是一种很多人都在学习的语言. Qt的好处就在于Qt本身可以被称作是一种 C++ 的 ...
- 关于基于GDAL库QT软件平台下C++语言开发使用说明
背景前提 地理空间数据抽象库(GDAL)是一个用于读取和编写栅格和矢量地理空间数据格式的计算机软件库,由开源地理空间基金会在许可的X / MIT风格免费软件许可下发布. 作为一个库,它为调用应用程序提 ...
- 快速全面了解QT软件界面开发技术
快速全面了解QT软件界面开发技术 目录 前言 一. 学习QT可能的目的是什么? 只想体验一下QT? 当前的项目选择了用QT. 为将来做QT技术储备. 二. QT的核心技术优势是什么? QT在软 ...
随机推荐
- 11.【Linq】
11.2.4 Cast . OfType 和显式类型的范围变量 这两个操作符很相似:都可以处理任意非类型化的序列(它们是非泛型 IEnumerable 类的扩展方法),并返回强类型的序列. Cast ...
- [luogu1640 SCOI2010]连续攻击游戏 (二分图最大匹配)
传送门 Description lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某 ...
- CentOS 7.2.1511编译安装Nginx1.10.1+MySQL5.7.15+PHP7.0.11
准备篇 一.防火墙配置 CentOS 7.2默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop firewalld.se ...
- elasticsearch 权威指南排序阅读笔记(六)
默认排序 默认查询是通过_source 准确性权重来排序 字段排序 { "query":{ "match":{ "productName": ...
- 0926mysql join的原理
转自 http://www.cnblogs.com/shengdimaya/p/7123069.html MySQL JOIN原理 先看一下实验的两张表: 表comments,总行数28856 表 ...
- SSL延迟
原文链接 据说,Netscape公司当年设计SSL协议的时候,有人提过,将互联网所有链接都变成HTTPs开头的加密链接. 这个建议没有得到采纳,原因之一是HTTPs链接比不加密的HTTP链接慢很多.( ...
- arcgis for javascript 添加featurelayer,设置地图最大最小等级
转自原文arcgis for javascript 添加featurelayer,设置地图最大最小等级 var map; var livingCenter; var livingCenterUrl = ...
- Ruby 教程
Ruby 教程 http://www.runoob.com/ruby/ruby-tutorial.html http://guides.rubyonrails.org/getting_started. ...
- 万众创业,互联网+,WTO
WTO的保护期,发展的非常繁荣.但大部分的资源都配置在了房地产这个支柱产业, 而被保护的行业小日子过得不错, 研发再投入?那是傻子才做的事情,别墅.豪车.美女.这才是生活. 但突然有一天,发现保护期要 ...
- MySQL主从复制和读写分离
我们知道应用对数据库的訪问通常情况下大部分都是读操作,写仅仅占非常少一部分.因此读写分离(read-write-splitting)能有效减少主库压力,从而解决站点发展过程中遇到的第一次数据库瓶颈. ...