Qt 与 Qt Creator 简介
该文章原创于Qter开源社区(www.qter.org),作者 yafeilinux,转载请注明出处!
一、Qt 与 Qt Creator 简介
Qt 是一个跨平台应用程序和 UI 开发框架。使用 Qt 您只需一次性开发应用程序,无须重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应用程序。
Qt Creator 是全新的跨平台 QtIDE(集成开发环境),可单独使用,也可与 Qt 库和开发工具组成一套完整的 SDK(软件开发工具包)。 其中包括:高级 C++ 代码编辑器,项目和生成管理工具,集成的上下文相关的帮助系统,图形化调试器,代码管理和浏览工具。
二、Qt 功能与特性
- 直观的 C++ 类库:模块化 Qt C++ 类库提供一套丰富的应用程序生成块 (block),包含了构建高级跨平台应用程序所需的全部功能。具有直观,易学、易用,生成好理解、易维护的代码等特点。
- 跨桌面和嵌入式操作系统的移植性:使用 Qt,您只需一次性开发应用程序,就可跨不同桌面和嵌入式操作系统进行部署,而无须重新编写源代码,可以说Qt无处不在(QtEverywhere) 。
- 使用单一的源代码库定位多个操作系统;
- 通过重新利用代码可将代码跨设备进行部署;
- 无须考虑平台,可重新分配开发资源;
- 代码不受担忧平台更改影响的长远考虑 ;
- 使开发人员专注于构建软件的核心价值,而不是维护 API 。
- 具有跨平台 IDE 的集成开发工具:Qt Creator 是专为满足 Qt 开发人员需求而量身定制的跨平台集成开发环境 (IDE)。Qt Creator 可在 Windows、Linux/X11 和 Mac OS X 桌面操作系统上运行,供开发人员针对多个桌面和移动设备平台(IOS, Andoid等)创建应用程序。
- 在嵌入式系统上的高运行时间性能,占用资源少。
三、Qt Creator功能和特性
- 复杂代码编辑器:Qt Creator 的高级代码编辑器支持编辑 C++ 和 QML (JavaScript)、上下文相关帮助、代码完成功能、本机代码转化及其他功能。
- 版本控制:Qt Creator 汇集了最流行的版本控制系统,包括 Git、Subversion、Perforce、CVS 和 Mercurial。
- 集成用户界面设计器:Qt Creator 提供了两个集成的可视化编辑器:用于通过 Qt widget 生成用户界面的 Qt Designer,以及用于通过 QML 语言开发动态用户界面的 Qt Quick Designer*。
- 项目和编译管理:无论是导入现有项目还是创建一个全新项目,Qt Creator 都能生成所有必要的文件。包括对 cross-qmake 和 Cmake 的支持。
- 桌面和移动平台:Qt Creator 支持在桌面系统和移动设备中编译和运行 Qt 应用程序。通过编译设置您可以在目标平台之间快速切换。
- Qt模拟器:Qt模拟器是Qt SDK的一部分,可在与目标移动设备相似的环境中对移动设备的 Qt 应用程序进行测试。
四、Qt类库
模块化 Qt C++ 类库提供一套丰富的应用程序生成块(block),包含了生成高级跨平台应用程序所需的全部功能。
1.先进的图形用户界面(GUI):Qt为您在桌面与嵌入式平台上开发先进的GUI应用程序,带来所有需要的功能。Qt使用所支持平台的本地化图形API,充分利用系统资源并给予应用程序本地化的界面。
- 从按钮和对话框到树形视图与表格都具有完整的控件(窗体)
- 自动缩放,字体、语言与屏幕定位识别布局引擎
- 支持抗锯齿、矢量变形以及可缩放矢量图形 (SVG)
- 具有样式API和窗体样式表,可完全自定义用户界面
- 支持嵌入式设备的硬件加速图形和多重显示功能
2.基于OpenGL ®与OpenGL ®Es的3D图形:OpenGL® 是一个标准的图形库,用于构建跨平台和支持硬件加速的高性能可视化应用程序。虽然OpenGL完美支持3D图形,但却不支持创建应用程序用户界面。Qt通过与OpenGL 的紧密集成解决了这一难题。
在您的应用程序中轻松加入3D图形
- 在嵌入式Linux 与Windows CE 平台上使用OpenGL ES和OpenGL绘画引擎
- 利用系统资源实现最佳图形性能
- 支持Windows 平台上的Direct3D®
3.多线程:多线程编程是一个执行资源密集型操作而不会冻结应用程序用户界面的有效典范。Qt的跨平台多线程功能简化了并行编程,另外它附加的同步功能可以更加轻松地利用多核架构。
- 管理线程、数据和对象更加轻松
- 基于Qt的信号与槽,实现跨线程类型安全的对象间通讯
- 高端API可以编译多线程程序而无须使用底端基元
4.嵌入式设备的紧凑视窗系统:Qt构建在标准的 API基础上,用于具有轻量级window系统的嵌入式 Linux 设备。基于 Qt的应用程序直接写入 Linux 帧缓冲,解除了您对 X11 视窗系统的需求。
- 减少内存消耗,内存占用更小
- 可以编译移除不常使用的组件与功能
- 可以利用硬件加速图形
- 在桌面系统上的虚拟帧缓冲可用于嵌入式开发与调试
5.对象间通讯:在开发用户图形界面中,一个常见的、重复发生系统崩溃与问题的症结根源是如何在不同组件之间进行通信。对于该问题,Qt 的解决方案是信号与槽机制,即执行Observer设计模式。我们可以简单理解为当特殊事件发生的时候,信号就被发出了,一个插槽就是一个函数,被称作特定信号的响应。
- 信号与槽机制是类型安全的(type safe)
- 任意信号都可以连接任意或多个插槽,或跨多个线程
- 简化真正的组件编程
6.2D图形:Qt给您提供一个功能强大的2D图形画布,用以管理和集成大量的图形元素。
- 高精度可视化大量元素
- 将窗体互动嵌入至图形场景中
- 支持缩放、旋转、动画与**变换
7.多媒体框架:Qt使用 Phonon多媒体框架为众多的多媒体格式提供跨桌面与嵌入式操作系统的回放功能。Phonon可以轻松将音频与视频回放功能加入到Qt应用程序当中,并且在每个目标平台上提取多媒体格式与框架。
- 以平**立的方式提供多媒体内容
- 从本地文件读取媒体或读取网络上的流媒体
- 提取Mac上的 QuickTime® ,Windows 上的DirectShow® 以及 Linux 上的Gstreamer
8.WebKit集成:Qt WebKit集成,即Qt集成了WebKit功能,WebKit是KDE项目下基于 KHTML的开放源web浏览器引擎。
- 将web与本地内容和服务整合在单一的富应用程序当中
- 快速创建整合实时web内容与服务的应用程序
- 使用集成在本地代码中的 HTML 与Java Script
- 完全控制跨平台的浏览器环境
9.网络连接:Qt 让您网络编程更简单,并支持跨平台网络编程。
- 完整的客户/服务器插口提取
- 支持 HTTP,FTP,DNS 与异步 HTTP 1.1
- 无论HTML 和XML或图象与媒体文件,它都可以存取所有类型的数据
10.XML:Qt 为XML 文件以及SAX 和 DOM 协议的C++实现,提供了一个流媒体文件读写器。同时 Qt 还包含了 XQuery – 一个简单的类似 SQL的查询语言,用于解析XML文件来选择和聚合所需要的XML元素,并且将它们转换成XML输出或其它格式的输出。
- 仅需少数几行代码便可实现先进的 XML 查询
- 完全支持 XQuery 1.0 和 XPath 2.0
- 在您自己的应用程序中从XML查询、抽取和转换数据
11.脚本引擎:Qt 包含一个完全集成 ECMA 标准的脚本引擎。 QtScript 提供 QObject 集成,把 Qt的信号与槽机制整合成脚本,并且实现了C++ 与脚本的集成。
- 基于ECMA 标准的脚本语言(ECMAScript 3是JavaScript1.5的基础)
- 为简化的对象间通讯使用Qt的信号与槽机制
- 开创新的契机将脚本与您的Qt应用程序相集成
12.数据库:Qt 帮助您将数据库与您的Qt应用程序无缝集成。Qt支持所有主要的数据驱动,并可让您将SQL发送到数据库服务器,或者让 Qt SQL类自动生成 SQL 查询。
- 支持所有主要的数据库驱动
- 以多种视图或数据识别表单方式显示数据
五、Qt Quick介绍
Qt Quick是在Qt4.7中被引进的一项技术。Qt Quick 是一种高级用户界面技术,开发人员和设计人员可用它协同创建动画触摸式用户界面和应用程序。它由三部分构成:1.QML:像 JavaScript 一样的声明式语言;2. Qt Creator:在 Qt IDE中的直观工具;3. Qt Declarative:强大的 C++ 模块。
1.主要组成:
- QML:基于 JavaScript 的直观语言 :QML 是一种简便易用的语言,开发人员与用户界面设计人员无需任何 C++ 知识,即可用其描绘出用户界面的外观和功能。
- 面向开发人员和设计人员的共享工具:Qt Creator IDE2.1 版将集成一套开发人员与用户界面设计人员可共享,用以创建和实施 Qt Quick 项目的通用工具。
- 通过 C++ 推动 QML 应用程序:在 Qt 库中的全新Declarative 模块支持生成动态可定制的用户界面,以及通过 C++ 拓展 QML 应用程序。
2.功能特点:
- 快速开发动画式流畅多变的用户界面:通过直观的 QML 语言和一套丰富的 QMLElements——UI 和行为生成块——您可以快速创建出令人印象深刻的用户界面,比您想象的还要快。
- 无需 C++ 知识:如果您具有 JavaScript 的经验或掌握基本的网络技术 (如 HTML 和 CSS),您就可以通过 QML 取得非常不错的成果。
- 瞄准数以百万计的触摸屏设备:使用 Qt Quick,您可为各种类型的触摸屏消费类电子设备创建用户界面。
3.应用领域:
- 汽车信息娱乐系统 UI:Cybercom Group 的用户界面设计人员与开发人员尝试使用 Qt Quick 为其汽车信息娱乐平台设计 UI——并取得了令人满意的结果。
- 社交媒体电视:mixd.tv 使用 Qt Quick 为其跨平台网络电视应用程序创建 UI,其用户可以通过社交媒体频道访问和共享在线视频的内容。
- 联网汽车:Qt 的认证合作伙伴 Digia 很快学会了 Qt Quick 并用其创建出了包括导航、电话、游戏和音乐功能的高级汽车 UI。
Qt 与 Qt Creator 简介相关推荐
- Qt图形界面编程入门(Qt的历史、Qt安装资源链接、Qt Creator简介)
Qt的历史渊源 Qt是1991年由挪威的奇趣科技(Trolltech)公司开发的跨平台C++图形用户界面(GUI)用程序开发框架,2008年,奇趣科技公司被诺基亚公可收购,Qt也因此成为诺基亚公司旗下 ...
- qt的重要文件简介pro、moc、pri、prf
qt的重要文件简介pro.moc.pri.prf 一.项目文件(pro 文件)及其语法 二.moc 简介 三.pro.pri.prf 文件简介 一.项目文件(pro 文件)及其语法 1.项目文件(pr ...
- 第0篇 开始学习Qt 与Qt Creator
Qt官方信息 Qt官网:Digia and Qt have demerged into two companies – Digia's new strategy's main themes revea ...
- 【Qt】Qt Creator中文输入设置
#[Qt]Qt Creator中文输入设置 一.ubuntu中文输入法的设置 1.在终端中输入: $ ibus-setup 弹出界面如图: 2.选择中文输入法 3.点击右上角设置–>选择系统设置 ...
- 【Qt】Qt数据库简介
00. 目录 文章目录 00. 目录 01. Qt SQL模块简介 02. 数据库类 03. 数据库驱动 04. 测试代码 05. 附录 01. Qt SQL模块简介 本概述假定您至少具有SQL的基本 ...
- QT [004] QT SDK 和 QT quick 和 QT creator的区别历史和沿袭
1 前言 之前查QT的参考书,往往被QT的开发书籍定义弄蒙了,什么是QT quick,什么是QT creator 查了某度,简直是fent了,更晕了,这边开一个文章给有这方面疑惑的初学者带个路吧 然 ...
- QT,QT/E,Qtopia,qt creator的联系与区别
关于qt,qte,qtopia,qt creator它们之间的区别和联系,相信对所有刚刚入门qt的同学来说都是很模糊的.我在刚开始接触qt的时候也是这样,而且我第一次接触的是qte,因为要在arm上开 ...
- 【Qt】Qt学习笔记(更新中)
文章目录 0x00 前言 0x01 Qt简介 1.1 Qt是什么 1.2 Qt发展史 1.3 Qt支持的平台 1.4 使用Qt开发的软件 1.5 Qt的优点 1.6 其它 0x02 创建Qt项目 2. ...
- Qt 之 Qt/Qt Lite 自编译详解(VS/MinGW/...)
2018/3/24 目前QT更新到了5.10.1.文章增加了对该版本的说明. 2020/9/5 目前QT更新到了5.15.0.文章更新了部分内容 写在前面 现在,网上关于 Qt 编译的文章数不胜数 ...
最新文章
- 站长如何短线操作实现盈利
- Phython—实训day5—爬虫相关知识
- xss测试工具(xsstrike基于python)
- redis持久化RDB和AOF
- bootstrap 页面分成三列_20分钟成功编写bootstrap响应式页面 就这么简单
- WCF 第五章 导出并发布元数据(服务行为)
- 滴滴辟谣被美团收购;苹果提交认证 9 款新手机;VS Code 1.46 发布 | 极客头条
- 学习指南_这可能是全网最详细的HTTP学习指南了
- MongoDB导出-导入-迁移
- wordpress登录账号之后才能查看页面,实例
- 计算机常用英语词汇及读音,e发音的单词有哪些
- 应用统计学学什么科目_统计学考研初试都要考哪些科目?
- 阿里云 OSS图片处理
- 学点字符串匹配——zbox
- bzGhost打造跨平台即时聊天软件之专栏介绍
- springboot毕设项目基于的医院就医平台m11a1(java+VUE+Mybatis+Maven+Mysql)
- 苹果可以访问linux的smb,Samba For iOS让iPhone使用网上邻居使用体验教程
- 【Centos】sshd 无法启动(解决问题篇,附问题排查思路和解决方法)
- Vue.js 3.0 学习笔记(七)class与style绑定
- LINQ之Update
热门文章
- 针对前端初级学者,如何在windows下搭建react-native环境详细教程
- python-微信小程序的学习
- keil c51如何添加STC芯片的固件库文件
- ui设计是干啥的: ui设计师主要是做什么的呢
- cocos creator Android 接入Google登陆sdk
- linux java jdk环境变量设置之后,依旧提示 No such file or directory
- php new object delete,php – S3 DeleteObject – DeleteMarker始终返回空
- 【复现笔记】Iterative Corresponding Geometry
- svn分支介绍和使用
- 浅析swift optional