新手必学 Qt 类简介
创始人
2024-07-31 22:01:38
0

Qt 简介

Qt (发音同 cute)是一个跨平台的C++开发工具,有时又被称为C++部件工具箱。Qt被用在KDE桌面环境、Opera、Google Earth、Skype、Adobe Photoshop Album和VirtualBox的开发中。它是挪威Qt Software 的产品,2008年6月17日被芬兰的诺基亚(Nokia)公司收购,以增强该公司在跨平台软件研发方面的实力。

使用Qt开发的软件,可以在任何支持的平台上编译与运行,而不需要修改源代码。可以实现本平台的图形界面风格,也可实现其它平台的图形界面风格。比如可以在Microsoft Windows平台下编译出具有苹果公司Mac OS图形界面风格的应用程序。

经过多年发展,Qt不但拥有了完善的C++图形库,而且近年来的版本逐渐集成了数据库、OpenGL库、多媒体库(Phonon)、网络库、脚本库、XML库、WebKit库等等,其内核库也加入了进程间通信、多线程等模块,极大的丰富了Qt开发大规模复杂跨平台应用程序的能力,真正意义上实现了其研发宗旨“Code Less; Create More; Deploy Anywhere.”。

Qt中使用了C++的非标准扩展,用在编译前增加一个名为moc的预处理器来实现,moc将Qt代码处理成标准C++代码。

Qt开放源代码,并且提供自由软件的用户协议。使得它可以被广泛地应用在各平台上的开放源代码软件开发中。

2009年5月11日,诺基亚Qt Software 宣布 Qt源代码管理系统面向公众开放,Qt 开发人员可通过为 Qt 以及与 Qt 相关的项目贡献代码、翻译、示例以及其他内容,协助引导和塑造 Qt未来的发展。为了便于这些内容的管理,Qt Software 启用了基于 Git 和 Gitorious 开源项目的Web 源代码管理系统。

在推出开放式 Qt 代码库的同时,Qt Software 在其网站发布了其产品规划(Roadmap)。其中概述了研发项目中的***功能,展现了现阶段对 Qt 未来发展方向的观点,以期鼓励社区提供反馈和贡献代码,共同引导和塑造 Qt 的未来。

Qt 提供三种授权方式[2]:

Qt 商业版 – Qt 商业授权适用于开发专属和/或商业软件。此版本适用于不希望与他人共享源代码,或者遵循 GNU 宽通用公共许可证 (LGPL) 2.1 版或 GNU GPL 3.0 版条款的开发人员。

GNU LGPL v. 2.1- Qt 4.5.0 及以后的版本开始遵循 GNU LGPL,这些版本的 Qt 适用于开发专属或开源 Qt 应用程序,前提条件是必须遵循 GNU LGPL 2.1 版的条款。

GNU GPL v. 3.0 – 如果您希望将 Qt 应用程序与受 GNU 通用公共许可证 (GPL) 3.0 版本条款限制的软件一同使用,或者您希望 Qt 应用程序遵循该 GNU许可证版本的条款,则此版本 Qt 适用于开发此类 Qt 应用程序。

关于如何正确选择合适的Qt授权协议,可以参考: Qt GPL, LGPL&Commercial License [3]。

支持平台

Qt for X11:用于 X Window System (Unix、Linux、BSD)。支持 KDevelop IDE 集成

Qt for Mac:用于 Apple Mac OS X。支持 Cocoa 和 Carbon 框架。支持以 Xcode 编辑、编译和测试。

Qt for Windows:用于 Microsoft Windows。支持 Visual Studio 集成

Qt for Embedded Linux:用于嵌入式Linux。可以通过编译移除不常使用的组件与功能。通过自己的视窗系统QWS,不需依赖X Window System,直接写入Linux 帧缓冲。可以减少存储器消耗。并提供虚拟帧缓冲 QVFb,方便在桌面系统上进行嵌入式测试。

Qt for Windows CE:用于 Windows CE

Qt for S60:用于 S60

语言绑定除了C++外,Qt还为其它多种计算机语言提供了应用程序接口,您也可以使用这些语言开发Qt应用程序。

PyQt:Python绑定

QtRuby:Ruby绑定

Qt Jambi:Java绑定

Qyoto:C# 或其他 .NET 语言绑定,同时也是Kimono(KDE API 的 .NET 绑定)的基础。

QtAda:Ada绑定

FreePascal QT4:Pascal绑定

Perl Qt4:Perl绑定

PHP Qt:PHP绑定

Qt Haskell:Haskell绑定

lqt:Lua绑定

Qt 的 hello world

  1. Qt 的 hello world  
  2. #include  
  3. #include    
  4.  
  5. int main(int argc, char *argv[])  
  6. {  
  7.     QApplication app(argc, argv);  
  8.     QLabel label("Hello, world!");  
  9.     label.show();  
  10.     return app.exec();  

#p#

Qt 附带的工具

Qt Creator,轻量级的Qt/C++ IDE开发环境。

Qt Designer,界面设计师。

Qt Assistant,Qt文档。

Qt Liguist,翻译工具,使得非开发的翻译人员亦可进行翻译

qmake,跨平台构建工具,可简化跨不同平台进行项目开发的构建过程。qmake 可以自动生成 Makefile,还可同样生成 Microsoft Visual Studio 项目档

QVFb,虚拟帧缓存设备,模拟framebuffer设备(尺寸、色深),还可以通过skin模拟硬件键盘的布局(包括特殊的按键),可以便捷在桌面系统机器上开发嵌入式程序

使用Qt开发的程序一些出名的例子如下:

谷歌地球,三维虚拟地图软件。

eva,Linux版QQ聊天软件。

KDE,著名的桌面环境。

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

Last.fm播放器,著名的互联网音乐社区网站的桌面客户端。

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

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

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

Opera,著名的网页浏览器。

Qterm,Linux下的BBS软件。

Scribus,桌面排版软件。

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

VirtualBox,虚拟机程序。

Xconfig,Linux的Kernel配置工具

VLC多媒体播放器,一个体积小巧、功能强大的开源媒体播放器,从0.9版开始有Qt界面。

Adobe Photoshop Album

Qt Extended

Qt 相关资料

Qt 官方网站 - http://qt.nokia.com/

Qt 中文官方网站 - http://qt.nokia.com/title-cn

Qt 在线文档 - http://doc.qt.nokia.com/

Qt 社区 - http://qtcentre.org/

Qt for S60/Symbian开发 - http://www.forum.nokia.com/Resources_and_Information/Tools/Runtimes/Qt_for_S60/

Qt for Maemo (N800/N810) 开发 - http://qt4.garage.maemo.org/

Qt on Facebook – Click here to join

Qt on Twitter – Click here to follow

Qt on LinkedIn – Click here to join

Qt Video Hub 视频中心 - http://u.youku.com/QtChina

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...