QML 编程之旅 -- QML程序的基本结构概念
文章目录
- QML 文档的构成
- QML基本语法
QML 编程之旅 – QML程序的基本结构概念
学习Qt编程快近一年了,的确是项目驱动,让我不得不咬紧牙关,需要快速的学习掌握一门新的技术。编程是一个非常累的学习过程,不但基本的逻辑思维能力要强,同时也非常考验阅读能力。到了一定年纪,记忆力在逐渐下降,特别是遇到一些生活上的困苦之后,要强保持清醒的头脑都很难。自从恋上了技术博客之后,感觉打开了另一条学习的通道,虽然访客的数量不多,但是看到自己这一路的历程,想想也是很开心的。技术博客,可以储备自己的技术能力,敦促自己的学习,提高总结,写作的能力,还可以将技术分享给更多一起学习的朋友的,何乐而不为!
现在还是言归正传吧。自从发现的Qt,相比较于MFC,发现原来GUI的编程可以如此简洁。但是开发出来的GUI的美观度上还是一般,虽然有QSS来描述GUI的外观,但是还是显得繁琐。
QML(Qt Meta Language) 是一个用来描述应用程序界面的声明式脚本语言。
它具有良好的易读性。它以可视化组件及其交互和相互关联的方式来描述界面,支持在一个用户界面上方便地复用和定制组件。
Qt Quick 是Qt为QML提供的一套类库。使用Qt Quick,可以很容易的用QML构建出高品质、流畅的UI界面。
QML 文档的构成
QML程序的源文件又叫"QML 文档",以.qml为文件名后缀。
每一个QML文档都由两部分构成:import 和对象声明。
import 部分导入Qt Quick 库,包含了用户界面最通用的类和功能。
如:
import QtQuick 2.12
import QtQuick.Window 2.12
导入这些库后,用户可以访问Qt Quick所有的QML类型、接口和功能。
对象声明,是QML程序代码的主体部分,它以层次化的结构定义了可视场景中将要显示的诸元素。
QML基本语法
1、层次: 每个QML文档有且只有一个根对象,可以嵌套层级的子对象。
对象的定义,以大写字母开头,后面跟一个大括号{},{}之中是该对象的属性,属性以键值对“”属性名:值“”的形式给出。
2、对象标识符:
每个对象都可以指定一个唯一的id值,这样便于在其他对象中识别并引用该对象。
3、属性的别名:
QML 使用alias 关键字声明属性的别名。
4、注释
同C/C++ 、javaScript 代码注释一样。
文章内容整理来自参考陆文周编写的《Qt5 开发及实例》。
QML 编程之旅 -- QML程序的基本结构概念相关推荐
- QML编程之旅 -- 事件处理
文章目录 QML编程之旅 -- 事件处理 1.鼠标事件 2.键盘事件 3.输入控件与焦点 QML编程之旅 – 事件处理 QML也可以对键鼠事件进行处理.因为QML程序更多的是用于实现触摸式用户界面,所 ...
- QML编程之旅 之可视元素
文章目录 **QML编程之旅 -- 可视元素** 1.矩形元素 2.图像元素 3.文本元素 4.自定义元素(组件) QML编程之旅 – 可视元素 QML 语言使用可视元素来描述图形化用户界面,每个可视 ...
- QML编程之旅 -- 元素布局
文章目录 QML编程之旅 -- 元素布局 1.Positioner(定位器) 2.重复器 3.锚点 QML编程之旅 – 元素布局 概述: QML编程中可以用X,Y属性手动布局元素,但这些属性是与元素父 ...
- java编写水数仙花,【360高手联盟-小仙】【JAVASE编程基础】02-JAVA程序的基本结构和基础语法...
一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍下类.对象.方法和实例变量的概念. 对象:对象是类的一个实例,有状态和行为.例如,一条狗是一个对象,它的 ...
- QQuickWidget + QML编程实现酷炫动态动画效果
1.具体需求:当Qt开发项目中需要实现简单的动态酷炫动画效果时,我们可以使用Qt中的QQuickWidget来实现,同时还可以使用QML编程来实现具体的动画效果,具体实现的效果如下所示: 2.具体操作 ...
- QML学习笔记-对QML基本认识
首先是QML与Qt Quick的关系: 这就相当于C++与Qt的关系: 只是一个语言和框架的关系 从Qt 5.1开始,Qt Quick引入了一组界面控件,使用这些控件可以更简单地创建传统桌面应用.这些 ...
- QML学习系列-Qt QML是什么?
Qt QML是一个用于创建用户界面(UI)和应用程序逻辑的声明性语言.它是Qt框架的一部分,用于开发跨平台的应用程序,可运行于Windows.MacOS.Linux.Android.iOS等平台上. ...
- UNIX网络编程之旅-配置unp.h头文件环境
最近在学习Unix网络编程(UNP),书中steven在处理网络编程时只用了一个#include "unp.h" 相当有个性并且也很便捷 于是我把第三版的源代码编译实现了这个过程 ...
- python编程在哪里写程序-教你如何编写、保存与运行Python程序的方法
第一步 接下来我们将看见如何在 Python 中运行一个传统的"Hello World"程序.Python教程本章将会教你如何编写.保存与运行 Python 程序. 通过 Pyth ...
最新文章
- Android在eoe分享一篇推荐开发组件或者框架的文章
- 掩码计算工具netmask
- 噪声dba是什么单位_在职DBA : 工作多年为什么还是选择报读工商管理博士
- java问题的英语对话_一些表达拒绝的应用英语
- boost::geometry::convert用法的测试程序
- JAVA第六章第6题,java第六章例题源代码
- [转载]如何将Putty生成的PrivateKey转换为SecureCRT所需的PublicKey
- 找一个程序员当男朋友是什么样的体验?
- MongoDB(二)CRUD 指令简单汇总
- 【Codeforces Round #519 by Botan Investments D】Mysterious Crime
- JDK1.8源码(十一)——java.util.TreeMap类
- android消息处理机制原理解析
- 微课计算机教学研究案例,《微课在中学信息技术教学中有效运用的案例研究》的开题报告...
- 【facenet人脸识别】利用LFW数据集进行人脸比对测试
- 微信公众号开发--自定义菜单跳转页面并获取用户信息
- I - 喵帕斯之平地摔
- 华为S5300系列交换机V100R006SPH019升级补丁
- 就您所知,它只是一个Java库
- centos虚拟机重启网卡命令
- Docker-配置私有仓库
热门文章
- 二十万字C/C++、嵌入式软开面试题全集宝典七
- 【Python】一种超简单的二维列表降维方法
- 【Leetcode】大神总结的链表常见面试问题
- 科大星云诗社动态20210318
- MATLAB粒子模拟代码注释
- django 操作MySQL 中文乱码_Django 连接mysql数据库中文乱码
- Unet项目解析(1): run_training.py
- [骨科手术导航]2D/3D医学图像配准研究_罗博博_南方科技大学
- 再严重的感冒,马上就好!!
- 词法分析(1)---词法分析的有关概念以及转换图