文章目录

  • 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程序的基本结构概念相关推荐

  1. QML编程之旅 -- 事件处理

    文章目录 QML编程之旅 -- 事件处理 1.鼠标事件 2.键盘事件 3.输入控件与焦点 QML编程之旅 – 事件处理 QML也可以对键鼠事件进行处理.因为QML程序更多的是用于实现触摸式用户界面,所 ...

  2. QML编程之旅 之可视元素

    文章目录 **QML编程之旅 -- 可视元素** 1.矩形元素 2.图像元素 3.文本元素 4.自定义元素(组件) QML编程之旅 – 可视元素 QML 语言使用可视元素来描述图形化用户界面,每个可视 ...

  3. QML编程之旅 -- 元素布局

    文章目录 QML编程之旅 -- 元素布局 1.Positioner(定位器) 2.重复器 3.锚点 QML编程之旅 – 元素布局 概述: QML编程中可以用X,Y属性手动布局元素,但这些属性是与元素父 ...

  4. java编写水数仙花,【360高手联盟-小仙】【JAVASE编程基础】02-JAVA程序的基本结构和基础语法...

    一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍下类.对象.方法和实例变量的概念. 对象:对象是类的一个实例,有状态和行为.例如,一条狗是一个对象,它的 ...

  5. QQuickWidget + QML编程实现酷炫动态动画效果

    1.具体需求:当Qt开发项目中需要实现简单的动态酷炫动画效果时,我们可以使用Qt中的QQuickWidget来实现,同时还可以使用QML编程来实现具体的动画效果,具体实现的效果如下所示: 2.具体操作 ...

  6. QML学习笔记-对QML基本认识

    首先是QML与Qt Quick的关系: 这就相当于C++与Qt的关系: 只是一个语言和框架的关系 从Qt 5.1开始,Qt Quick引入了一组界面控件,使用这些控件可以更简单地创建传统桌面应用.这些 ...

  7. QML学习系列-Qt QML是什么?

    Qt QML是一个用于创建用户界面(UI)和应用程序逻辑的声明性语言.它是Qt框架的一部分,用于开发跨平台的应用程序,可运行于Windows.MacOS.Linux.Android.iOS等平台上. ...

  8. UNIX网络编程之旅-配置unp.h头文件环境

    最近在学习Unix网络编程(UNP),书中steven在处理网络编程时只用了一个#include "unp.h"  相当有个性并且也很便捷 于是我把第三版的源代码编译实现了这个过程 ...

  9. python编程在哪里写程序-教你如何编写、保存与运行Python程序的方法

    第一步 接下来我们将看见如何在 Python 中运行一个传统的"Hello World"程序.Python教程本章将会教你如何编写.保存与运行 Python 程序. 通过 Pyth ...

最新文章

  1. Android在eoe分享一篇推荐开发组件或者框架的文章
  2. 掩码计算工具netmask
  3. 噪声dba是什么单位_在职DBA : 工作多年为什么还是选择报读工商管理博士
  4. java问题的英语对话_一些表达拒绝的应用英语
  5. boost::geometry::convert用法的测试程序
  6. JAVA第六章第6题,java第六章例题源代码
  7. [转载]如何将Putty生成的PrivateKey转换为SecureCRT所需的PublicKey
  8. 找一个程序员当男朋友是什么样的体验?
  9. MongoDB(二)CRUD 指令简单汇总
  10. 【Codeforces Round #519 by Botan Investments D】Mysterious Crime
  11. JDK1.8源码(十一)——java.util.TreeMap类
  12. android消息处理机制原理解析
  13. 微课计算机教学研究案例,《微课在中学信息技术教学中有效运用的案例研究》的开题报告...
  14. 【facenet人脸识别】利用LFW数据集进行人脸比对测试
  15. 微信公众号开发--自定义菜单跳转页面并获取用户信息
  16. I - 喵帕斯之平地摔
  17. 华为S5300系列交换机V100R006SPH019升级补丁
  18. 就您所知,它只是一个Java库
  19. centos虚拟机重启网卡命令
  20. Docker-配置私有仓库

热门文章

  1. 二十万字C/C++、嵌入式软开面试题全集宝典七
  2. 【Python】一种超简单的二维列表降维方法
  3. 【Leetcode】大神总结的链表常见面试问题
  4. 科大星云诗社动态20210318
  5. MATLAB粒子模拟代码注释
  6. django 操作MySQL 中文乱码_Django 连接mysql数据库中文乱码
  7. Unet项目解析(1): run_training.py
  8. [骨科手术导航]2D/3D医学图像配准研究_罗博博_南方科技大学
  9. 再严重的感冒,马上就好!!
  10. 词法分析(1)---词法分析的有关概念以及转换图