Qt模块化笔记之Qt_Quick——引入

原创 2013年12月05日 23:00:24

首先,分清QML与qtquick, QML是一种格式类似css、混杂javaScript的“语言”,是一种工具,它属于qtquick。qtquick是一些“工具集”。

在qt的模块列表中,http://qt-project.org/doc/qt-5.1/qtdoc/qtmodules.html

qt qml与qt quick是两个分开的模块,我感觉不正确,因为在使用时,我们引入模块的语句为

import QtQuick 2.0,所以Qt_Quick才是模块……

好了,以上这些现在分不清也没关系,会用了,以后总能分清的。

先来看一段典型的qml语言写的代码(来自http://zh.wikipedia.org/wiki/QML):

import QtQuick 2.0
 
 Rectangle {
     id: canvas
     width: 200
     height: 200
     color: "blue"
 
     Image {
         id: logo
         source: "qt_logo.jpg"
         anchors.centerIn: parent
     }
 }

这段代码开头引入了模块QtQuick 2.0 (模块名与版本号),这个模块主要用于描述界面(使用元素组合成可视界面)

使用了Rectangle与Image两个QtQuick 模块中的元素,Image内嵌在Rectangle中,Rectangle是最顶层的,所以这个程序运行后,长与宽与这个Rectangle的长宽相同,都是200px。

Rectangle有唯一标识的ID号,还给了长宽,并将它颜色设为蓝色,而Image图片元素,则载入一张图片,并将它用“锚”,钉在了rectangle的中央部位,parent 即指“上一层”的rectangle,称为父对象

在qt中新建个工程,注意应选择新建qt quick application。将上面代码拷贝到main.qml覆盖,这个文件是默认的入口,结果如下:


qml语言也有继承关系,但关系都不复杂,以上两个元素都继承自Item元素。



除了这个主要模块外,还有一些子模块,以提供除描述界面外的其它功能。

从这个网页可比较清楚看它们关系:http://qt-project.org/doc/qt-5.1/qtquick/qtquick-qmltypereference.html

在网页中找到,子模块有以下这些:

Submodules列表

XML List Model - 处理XML相关
Local Storage - 一个本地SQLite数据库
Particles - 粒子系统(粒子即是发光的点组合)

Window - 创建顶层窗口contains types for creating top-level windows and accessing screen information
Dialogs - 对话框contains types for creating and interacting with system dialogs
Controls - qml实现的与widgets相同的控件集。provides a set of reusable UI components
Layouts - 布局contains types that are used to arrange items in the user interface

当需要使用它们中的功能时,可分别引入相应模块,比如要处理XML。
import QtQuick.XmlListModel 2.0

这样就可以使用它所包含的

XmlRoleXmlListModel



使用Qt编写模块化插件式应用程序

原文:http://blog.csdn.net/flyoxs/article/details/5546591 动态链接库技术使软件工程师们兽血沸腾,它使得应用系统(程序)可以以二进制模块的形...
  • liulihuo_gyh
  • liulihuo_gyh
  • 2015年12月27日 13:03
  • 755

使用Qt编写模块化插件式应用程序

原文:http://blog.csdn.net/flyoxs/article/details/5546591 动态链接库技术使软件工程师们兽血沸腾,它使得应用系统(程序)可以以二进制模块的形...
  • liulihuo_gyh
  • liulihuo_gyh
  • 2015年12月27日 13:03
  • 755

模块化驱动动态加载

驱动开发中共一般有2中内核调试方式 :静态编译进内核& 动态模块加载。而调试方式有3中,一种是每次下载内核与文件系统,启动,调试, 另外一种是在运行中动态加载内核,还有一种是nfs网络启动。  ...
  • yhf19881015
  • yhf19881015
  • 2012年05月15日 22:12
  • 370

已安装nginx动态添加模块

http://www.cnblogs.com/lixigang/articles/5130052.html 说明: 已经安装好的nginx,需要添加一个未被编译安装的模块,需要怎么...
  • leonpengweicn
  • leonpengweicn
  • 2016年10月18日 15:41
  • 1401

Qt模块化笔记之Qt_Quick——认识所有可视类型

可以组成程序界面,类似“控件”的可视类型(Visual Types)有如下: Item - 最基本的可视元素,下面这些都继承自它Basic visual object type inherited b...
  • xsjqqq123
  • xsjqqq123
  • 2013年12月07日 00:34
  • 1850

Qt模块化笔记之network——写第一个Tcp程序(1)

本节以QTcpServer与QTcpSocket为主,联合其它知识(sql与json),编写TCP服务器与客户端,以让读者更好理解Qt的TCP部分各函数功能。程序结构参考自qtcn上的liudianw...
  • xsjqqq123
  • xsjqqq123
  • 2014年02月19日 08:47
  • 2359

Qt plugin 的创建和动态加载

Qt plugin 的创建和动态加载 介绍 plug in 是一个实现了一个或多个接口的DLL,下面我们将介绍在QT中如何创建PLUG IN 和如何动态加载PLUG IN ...
  • gxp
  • gxp
  • 2013年08月17日 11:01
  • 794

*.ko驱动模块的动态加载,*.ipk应用层模块的动态加载,配置文件的拷贝

在linux内核启动时动态加载*.ko驱动模块需要完成一下两个步骤 1、make menuconfig配置界面中,对应的选项打*号,编译到内核。 2、再对应源码包中的makefile中完成*.ko包的...
  • wsclinux
  • wsclinux
  • 2015年05月28日 00:09
  • 557

Qt模块化笔记之Qt Widgets——抽象按钮及其继承类

QAbstractButton继承自QWidget,最为简单,本节介绍它及它的继承类,继承关系如下: QAbstractButton QCheckBox QPushButton QCom...
  • xsjqqq123
  • xsjqqq123
  • 2014年01月09日 20:47
  • 1913

echarts学习笔记(1) ---- 使用模块化单文件引入

这是笔者第一篇科技的博客文章,因为最近需要用到e
  • santongwater
  • santongwater
  • 2014年08月14日 21:10
  • 1262
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Qt模块化笔记之Qt_Quick——引入
举报原因:
原因补充:

(最多只允许输入30个字)