【Qt】Qt简介

00. 目录

文章目录

    • 00. 目录
    • 01. Qt简介
    • 02. Qt的历史
    • 03. 支持平台
    • 04. Qt的优点
    • 05. Qt Creator介绍
    • 06. Qt Creator功能和优势
    • 07. Qt Designer
    • 08. Qt Linguist
    • 09.Qt Assistant
    • 11. Qt应用实例
    • 附录

01. Qt简介

​ Qt是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,Qt很容易扩展,并且允许真正地组件编程。2008年,Qt Company科技被诺基亚公司收购,Qt也因此成为诺基亚旗下的编程语言工具。2012年,Qt被Digia收购。2014年4月,跨平台集成开发环境Qt Creator 3.1.0正式发布,实现了对于iOS的完全支持,新增WinRT、Beautifier等插件,废弃了无Python接口的GDB调试支持,集成了基于Clang的C/C++代码模块,并对Android支持做出了调整,至此实现了全面支持iOS、Android、WP,它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能。基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界 面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西。

02. Qt的历史

  • 1991–Haavard Nord和Eirik Chambe-Eng开始开发将会支持X11和Windows的Qt
  • 1994–Qt Company成立

  • 1996–KDE项目由MatthiasEttrich创建(Matthias现为诺基亚Qt发展框架工作)

  • 1998 Apr 05Trolltech的程序员在 5 天之内将 Netscape5.0 从Motif移植到 Qt 上

  • 1998 Apr 08 KDE Free Qt 基金会成立

  • 1998 Jul 09 Qt 1.40 发布

  • 1998 Jul 12 KDE 1.0 发布

  • 1999 Mar 04QPL1.0 发布

  • 1999 Mar 12 Qt 1.44 发布

  • 1999 Jun 25 Qt 2.0 发布

  • 1999 Sep 13 KDE 1.1.2 发布

  • 2000 Mar 20 嵌入式Qt 发布

  • 2000 Sep 06 Qt 2.2 发布

  • 2000 Oct 05 Qt 2.2.1 发布

  • 2000 Oct 30 Qt/Embedded 开始使用GPL宣言

  • 2000 Sep 04 Qt free edition 开始使用 GPL

  • 2008 Nokia从Trolltech公司收购Qt,并增加LGPL的授权模式

  • 2011 Digia从Nokia收购了Qt的商业版权,从此Nokia负责Qt on Mobile,,Qt Commercial由Digia负责

  • 根据最新消息,NOKIA已经停止Meltemi系统开发,Qt部门被解散

  • 2012 Aug 09 作为非核心资产剥离计划的一部分,诺基亚宣布将Qt软件业务出售给芬兰IT服务公司Digia。

  • 2013年7月3日,Digia公司Qt开发团队在其官方博客上宣布Qt 5.1正式版发布。

  • 2013年12月11日,Digia公司Qt开发团队宣布Qt 5.2正式版发布。

  • 2014年4月,Digia公司Qt开发团队宣布Qt Creator 3.1.0正式版发布。

  • 2014年5月20日,Digia公司Qt开发团队宣布Qt 5.3正式版发布。

03. 支持平台

Qt支持下述平台:

3.1 MS/Windows - 95、98、NT4.0、ME、2000、XP 、Vista、Win7、win8、win2008、win10
3.2 Unix/X11-Linux、SunSolaris、HP-UX、CompaqTru64 UNIX、IBMAIX、SGI IRIX、FreeBSD、BSD/OS和其它很多X11平台
3.3 Macintosh -Mac OS X
3.4 Embedded - 有帧缓冲(framebuffer)支持的嵌入式Linux平台,Windows CE

3.5 Symbian、Symbian^3、Symbian Anna、Symbian Belle、MeeGo

04. Qt的优点

Qt同X Window上的 Motif、Openwin、GTK 等图形界面库和 Windows平台上的 MFC、OWL、VCL、ATL是同类型的东西,但是 Qt 具有下列优点.

优良的跨平台特性:
Qt支持下列操作系统: Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS, HP-UX, Digital UNIX (OSF/1, Tru64), Irix, FreeBSD, BSD/OS, SCO, AIX, OS390,QNX 等等。

面向对象
Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常 方便的。 Qt 提供了一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件 之间的协同工作变得十分简单。

丰富的 API
Qt包括多达250个以上的C++类,还替供基于模板的collections、serialization、 file、I/O device、 directory management、date/time 类。甚至还包括正则表达式的处理功能。

支持 2D/3D 图形渲染,支持 OpenGL

xml支持

05. Qt Creator介绍

​ Qt Creator是跨平台的 Qt IDE, Qt Creator 是 Qt 被 Nokia 收购后推出的一款新的轻量级集成开发环境(IDE)。此 IDE 能够跨平台运行,支持的系统包括 Linux(32 位及 64 位)、Mac OS X 以及 Windows。根据官方描述,Qt Creator 的设计目标是使开发人员能够利用 Qt 这个应用程序框架更加快速及轻易的完成开发任务。

​ Qt Creator 包括项目生成向导、高级的 C++ 代码编辑器、浏览文件及类的工具、集成了 Qt Designer、Qt Assistant、Qt Linguist、图形化的 GDB 调试前端,集成 qmake 构建工具等。

06. Qt Creator功能和优势

Qt Creator 主要是为了帮助新 Qt 用户更快速入门并运行项目,还可提高有经验的 Qt 开发人员的工作效率。

使用强大的 C++ 代码编辑器可快速编写代码

​ 语法标识和代码完成功能输入时进行静态代码检验以及提示样式上下文相关的帮助代码折叠括号匹配和括号选择模式高级编辑功能

使用浏览工具管理源代码

​ 集成了领先的版本控制软件,包括 Git、Perforce 和 Subversion开放式文件,无须知晓确切的名称或位置搜索类和文件跨不同位置或文件沿用符号在头文件和源文件,或在声明和定义之间切换

为 Qt跨平台开发人员的需求而量身定制

​ 集成了特定于 Qt 的功能,如信号与槽 (Signals & Slots)图示调试器, 对 Qt 类结构可一目了然集成了 Qt Designer 可视化布局和格式构建器只需单击一下就可生成和运行 Qt 项目

07. Qt Designer

​ Qt Designer被称为Qt设计师,用于设计和构建图形用户界面(Qt Widgets)。你可以组合和自定义窗口或对话框(所见即所得),并使用不同的风格和分辨率进行测试。用Qt Designer创建的窗口部件和表格无缝集成编程代码,采用Qt信号和槽机制,这样就可以轻松地分配图形元素的行为。在Qt设计师中设置的所有属性可以动态地在代码中进行更改。此外,类似插件推广和自定义插件功能,可以使用自己的组件来使用Qt Designer。

​ 注意:你也可以选择使用Qt Quick来设计用户界面,而不是Qt Widgets。这样更容易写各种各样的应用。它可以完全定制外观,触摸反应的元素,流畅的动画过渡,支持OpenGL图形加速功能。如果刚接触Qt Designer,可以看看Qt设计师文档。有关如何使用Qt设计师,请参阅Qt设计师快速入门。

08. Qt Linguist

​ Qt Linguist被称为Qt语言家。主要任务是读取翻译文件、为翻译人员提供友好的翻译界面,是用于界面国际化的重要工具。它能帮助你很容易读懂C++语言。

使用方式
lupdate可以把.h、.cpp、.ui中需要翻译的字符串提取出来形成.ts文件,然后用linguist翻译。用lerealse生成.qm。

翻译一个含有tr()调用的Qt应用程序需要以下三步:

  1. 运行ludate,从应用程序的源代码中提取所有用户可见的字符串。
  2. 使用Qt Linguist翻译该应用程序。
  3. 运行lrelease,生成二进制.qm文件,应用程序可以使用QTranslator加载这个文件。
    如果开发工程中出现翻译改动,可以多次执行此过程!

09.Qt Assistant

Qt Assistant被称为Qt助手,是Qt自带的一款可定制、可重新发行的帮助文件浏览器。它支持HTML文件,用户可以利用其定制自己的功能强大的帮助文档浏览器。

##10. 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,您可以为数以百万计的 Symbian 和 MeeGo 设备生成应用程序,或为各种类型的触摸屏消费类电子设备创建用户界面。

3.应用领域:

  • **汽车信息娱乐系统 UI:**Cybercom Group 的用户界面设计人员与开发人员尝试使用 Qt Quick 为其汽车信息娱乐平台设计 UI——并取得了令人满意的结果。
  • **社交媒体电视:**mixd.tv 使用 Qt Quick 为其跨平台网络电视应用程序创建 UI,其用户可以通过社交媒体频道访问和共享在线视频的内容。
  • **联网汽车:**Qt 的认证合作伙伴 Digia 很快学会了 Qt Quick 并用其创建出了包括导航、电话、游戏和音乐功能的高级汽车 UI。

11. Qt应用实例

一些著名的例子如下:

3DSlicer, a free open source software for visualization and medical image computing

AcetoneISO:镜像文件挂载软件

Adobe Photoshop Album,一个图像组织应用程序 [35]

Arora:一款跨平台的开源网页浏览器

Autodesk MotionBuilder, 三维角色动画软件

Autodesk Maya, 3D建模和动画软件

Avidemux, a Free Software program designed for multi-purpose video editing and processing

Avogadro:高级分子编辑器

Battle.net**:**暴雪公司开发的游戏对战平台

BOUML,一个免费的统一建模语言工具箱

Bitcoin:比特币

chmcreator:开源的chm开发工具

CineFX:一款跨平台、开源、免费、影片剪辑,特效与合成套装

CoCoA, a software for computations in commutative algebra

Dash Express, an Internet-enabled personal navigation device

DAZ Studio, a 3D figure illustration/animation application

Doxygen:API文件产生器

EAGLE, tool for designing printed circuit boards(PCBs)

EiskaltDC++, a program that uses the Direct Connect protocol.

Emergent:神经网络模拟器。

, a software product for the simulation of electromagnetic fields

eva:Linux版QQ聊天软件。

FreeCAD, a free and open source 3D-Solid and general purpose design CAD/CAE

FreeMat:一个自由开源的数值计算环境和编程语言

Full Tilt Poker, one of the most popular online poker programs

Gadu-Gadu:实时通信软件

Gambas, A free development environment based on a Basic interpreter

GoldenDict:一款开源的字典软件

Google地球(Google Earth):三维虚拟地图软件。

GNS:Cisco网络模拟器。

Guitar Pro 6, a tablature editor

刺猬大作战:一个基于百战天虫的开源游戏。

Hydrogen, an advanced drum machine

ImageVis3D, a volume ray-casting application

Ipe:自由的矢量图形编辑器

ISE Webpack, a freeware EDA tool for Windows and Linux developed by Xilinx

Kadu, a Polish instant messenger using the Gadu-Gadu protocol

KDELibs:一个许多KDE程序都使用的共享库,如Amarok、K3b、KDevelop、KOffice等。

KeePassX, a multi-platform port of KeePass, an open source password manager for Microsoft Windows

Launchy:一个开放源代码的快捷启动器

LMMS:一个开放源代码的音乐编辑软件

LyX:使用Qt作为界面的LaTeX软件。

Mathematica:Linux和Windows版本使用Qt作为GUI

**Maxwell Render,**a software package that aids in the production of photorealistic images from computer 3D model data

Mixxx:跨平台的开放源代码DJ混音软件

MuseScore,一个WYSIWYG的乐谱编辑器

MythTV:开源的数字视频录制软件。

Nuke, a node-based compositor(节点式的合成软件)

PDFedit:自由的PDF编辑器

PokerTH, an open source Texas hold 'em simulator

Psi:一款XMPP网络协定的实时通信软件

qBittorrent:自由的BitTorrent P2P客户端

QCad:一个用于二维设计及绘图的CAD软件

Qjackctl, a tool for controlling the JACK Audio Connection Kit

QSvn, a GUI Subversion client for Linux, UNIX, Mac OS X and Windows

Opera:著名的网页浏览器。

Qt Creator, the free software cross-platform integrated development environment from Nokia

Qterm:跨平台的BBS软件。

Quantum GIS:自由的桌面GIS

Quassel IRC:跨平台的IRC客户端

RealFlow, a fluid and dynamics simulator for the 3D industry

Recoll:桌面搜索工具

Rosegarden, a free software digital audio workstation program

SciDAVis, a cross-platform plotting and data analysis program

Scribus:桌面排版软件。

Skype:一个使用人数众多的基于P2P的VOIP聊天软件。

SMPlayer:跨平台多媒体播放器

Spotify, music streaming service.

Stellarium:一款天文学的自由软件

TeamSpeak:跨平台的音效通信软件

Texmaker:一款跨平台的开放源代码LaTeX编辑器

TeXworks, It is a graphical user interface to the typesetting system TeX.

TOra, a database administration tool[36]

UniversalIndentGUI,an application which helps the user to beautify, reformat or indent various kinds of code.

**Valknut,**a program that uses the Direct Connect protocol

VirtualBox:虚拟机软件。

VisIt:一个开源型交互式并行可视化与图形分析工具,用于查看科学数据。

VisTrails, a scientific workflow management and visualization system

VLC多媒体播放器:一个体积小巧、功能强大的开源媒体播放器。

VoxOx, a unified communications software.

WordPress, based on Qt for Maemo and Symbian

wpa supplicant, a free software implementation of an IEEE 802.11i

Xconfig:Linux的Kernel配置工具

咪咕音乐:咪咕音乐是中国移动倾力打造的正版音乐播放器

**WPS Office:**金山软件公司推出的办公软件

极品飞车:EA公司出品的著名赛车类游戏

附录

本节最后附上关于 Qt 的两个官方网站链接:
Qt 商业公司:http://www.qt.io/
Qt 开源项目:http://qt-project.org/

你可能感兴趣的:(Qt)