新手必学 Qt 类简介

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

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 <QtGui/QApplication> 
  3. #include <QtGui/QLabel>   
  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

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-06-16 11:28:48

Qt QApplicati

2011-06-16 11:13:13

QtQWidget

2011-06-16 17:19:33

Qt Meego

2011-06-16 10:38:13

Qt多线程编程

2011-06-14 15:28:44

QT

2011-06-23 13:50:34

2011-06-23 13:40:22

2011-06-16 09:28:14

Qt QML 教程

2011-06-16 09:53:25

Qt QML 教程

2011-06-23 14:03:23

2011-06-23 13:20:46

2011-06-16 09:40:53

QML 教程

2011-07-04 14:33:07

PHP

2011-06-15 16:50:09

Qt 模块

2024-07-09 08:43:52

2010-06-21 15:11:54

Linux apt-g

2011-06-14 15:45:02

Qt Object

2009-06-29 12:37:21

linux

2011-06-14 16:31:27

QT

2010-08-10 13:52:31

路由器IOS简介
点赞
收藏

51CTO技术栈公众号