【Qt】关于Qt

什么是Qt

Qt是一个针对桌面、嵌入式、移动设备的一个跨平台的应用程序开发框架,支持的平台包括Linux、OS X、Windows、VxWorks、QNX、Android、iOS、BlackBerry(黑莓)、Sailfish OS(旗鱼操作系统)等。

Qt 1991年由Trolltech-奇趣科技(成立于1994年)开发,2008年,Trolltech被Nokia收购,2012年,Qt被Digia收购。

Qt是基于C++编写的框架,它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。预处理器,MOC(全称:Meta-Object Compiler-元对象编译器)用于扩展C++,如:信号和槽的特性。在编译之前,先使用MOC分析Qt扩展的C++源文件(检测是否包含Q_OBJECT宏),然后生成符合C++标准的源文件(新文件名将会由moc_加上原文件名构成)。因此框架本身和应用程序/库使用它能被任何符合标准C++的编译器(像Clang、GCC、 ICC、MinGW 和MSVC)所编译。

发展史

Qt的第一个商业版本于1995年推出,随后Qt的发展就很快了,下面是Qt发展史上的一 些里程碑,从之前的Qt1.x开始到现在的Qt5.x。

Qt1-3

版本 发布日期
1.40 10 July 1998
1.41 2 October 1998
1.42 19 December 1998
1.44 13 March 1999
2.0 26 June 1999
2.1 13 April 2000
2.2 7 December 2000
2.3 8 March 2001
3.0 16 October 2001
3.1 14 November 2001
3.2 24 July 2003
3.3 5 February 2004

Qt4

Trolltech在2005年6月28发布了Qt4.0,介绍了框架的五个新技术:

  1. 一套模板容器类
  2. 为item views提供了一套模型 - 视图 - 控制器体系结构
  3. 二维绘图框架
  4. 为低级文本布局提供了Unicode文本渲染器的公共API
  5. 基于Action的MainWindow,包括:工具栏,菜单和停靠体系
版本 发布日期 新特性
4.1 20 December 2005 推出集成SVG微小的支持,一个PDF的后端Qt打印系统,以及其他一些功能。
4.2 4 October 2006 介绍了Windows Vista的支持,部件的CSS样式支持,以及QGraphicsView框架-在屏幕上高效渲染成千上万个2D对象,以取代Qt3.x中的QCanvas类。
4.3 30 May 2007 改进了Windows Vista支持,改进了OpenGL引擎、SVG文件的生成,增加了QtScript(基于QSA的ECMAScript脚本引擎)。
4.4 6 May 2008 特性包含了改进multimedia的支持(使用Phonon),增强XML支持,集中共享内存的IPC框架,以及WebKit集成。
4.5 3 March 2009 主要包括功能有QtCreator,改进图形引擎,WebKit的集成,OpenDocument格式写入支持和新的许可选项,以及OS X Cocoa框架的支持。
4.6 1 December 2009 新的API框架-动画、手势、多点触控。支持Symbian、Windows 7和Mac OS X 10.6,支持扩展一些Unix系统。也取得了整体性能的改进。
4.7 21 September 2010 QML 和 Qt Quick
4.8 15 December 2011 Qt的平台抽象化,支持单线程OpenGL,多线程HTTP,优化了文件系统访问。

Qt5

Qt5于2012年12月19正式发布,这个新版本标志着平台的重大变化,硬件加速的显卡,QML和JavaScript发挥了重要作用。传统的C++ - 仅QWidgets继续得到支持,但没有从新体系结构的性能改进中受益,Qt5带来了速度及用户界面上的显著改进,Qt5开发框架移动至qt-project.org。外部开发者可以为Digia公司提交补丁,并让他们审查。

版本 发布日期 新特性
5.0 19 December 2012 对Qt4.x进行一系列重大改革。完成Wayland的支持。
5.1 3 July 2013 新模块以及Android和iOS实验性的支持技术预览。
5.2 12 December 2013 第一个官方支持Android和iOS的版本。
5.3 20 May 2014 集中于稳定性和可用性
5.4 10 December 2014 完整的WinRT和Windows Phone支持。介绍基于Chromium的Qt WebEngine内部组件,将在未来的版本中取代QtWebKit。动态的GL图形切换在Windows(ANGLE或OpenGL)后台,本地化的“外观和感觉”在QtQuick的控制在Android平台的后端,引入Qt WebChannels提供QObject到WebSockets的桥梁。最初仅使用Qt WebKit的集成,但还正在5.5下进行Qt WebEngine集成
5.5 1 July 2015 Qt5.5根据官方网站提供的功能:新模块: Qt 3D、Qt Canvas 3D、Qt Location。过时的模块的:Qt WebKit、Qt Declarative (Qt Quick 1)、Qt Script。蓝牙API的最终版本,新的视频过滤框架,Camera和QML MediaPlayer改善iOS,适用于Linux的NFC,SSL/TLS改进Qt Network
5.6 Alpha release: 8 September 2015 Final release plan: 8 December 2015 值得注意的改进:Qt Core:一些性能改进,包括减少动态性能的内存使用情况和性能最佳化的QString Qt Network:支持HTTP重定向 Qt GUI:改进了跨平台的OpenGL ES3.0和3.1 Qt Multimedia:添加QML类型播放列表 Qt WebEngine:基于Chromium 45,自定义URL方案的API,拦截和阻止网络请求,并跟踪或阻止Cookie QtQML:减少内存消耗 嵌入式平台:支持Intel Atom-based NUCs 过时的模块:Qt Script、Qt Enginio 已删除模块:Qt WebKit, Qt Declarative (Qt Quick 1)

平台支持

Qt支持下述平台:

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

优点

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 支持

Qt Creator

简介

在发布 Qt 4.6 的同时,作为 Qt 开发跨平台 IDE 的Qt Creator也发布了更新版本。Qt Creator 1.3 和 Qt 4.6共同构成的 Qt SDK,包含了开发跨平台应用程序所需的全部功能。

Qt Creator是一个用于Qt开发的轻量级跨平台集成开发环境。Qt Creator可带来两大关键益处:提供首个专为支持跨平台开发而设计的集成开发环境 (IDE),并确保首次接触Qt框架的开发人员能迅速上手和操作。即使不开发Qt应用程序,Qt Creator也是一个简单易用且功能强大的IDE。

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

功能和优势

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

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

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

  • 使用浏览工具管理源代码

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

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

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

Qt Designer

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

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

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加载这个文件。 
如果开发工程中出现翻译改动,可以多次执行此过程!

Qt Assistant

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

转自博主[一去丶二三里]的博客[关于Qt]

时间: 2024-12-14 10:05:24

【Qt】关于Qt的相关文章

Qt:QT右键菜单

Qt QTableView 上加右键弹出菜单, 并复制选中的单元格内容到剪贴板中 http://wenku.baidu.com/view/c51cfb63cf84b9d528ea7a29.html http://www.cppblog.com/biao/archive/2010/01/01/104593.html QWidget及其子类都可有右键菜单,因为QWidget有以下两个与右键菜单有关的函数: Qt::ContextMenuPolicy contextMenuPolicy () cons

QT,QT SDK, QT Creator 区别

Qt是一个跨平台的C++图形用户界面应用程序框架.(不仅仅是C++,还包括QML,Qquick,html5)它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能.Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程. QT Creator 跨平台的 Qt IDE, Qt Creator 是 Qt 被 Nokia 收购后推出的一款新的轻量级集成开发环境(IDE). QT SDK 包括了Qt库.Qt Creator IDE和Qt工具,这些都集成在一个易于安装的文件包里.. Qt<QT C

Qt Examples Qt实例汇总

ActiveQt Examples Using ActiveX from Qt applications. Animation Framework Examples Doing animations with Qt. Animated Tiles Application Chooser Easing Curves Move Blocks* States Stick man* D-Bus Examples Using D-Bus from Qt applications. Chat Complex

关于windows下QT以及QT creator的安装

普及  之  windows下qt的安装及配置 qt介绍 : Qt,分为商业.开源两个版本,商业版需要花钱购买license,而开源版本则遵守GPL协议,提供了源码,用户需要自行编译,才能生产动态库文件. 所以以下介绍开源版本(原因嘛,,自然是因为免费): Qt开发需要安装qt library 和 qt creator qt library为Qt的程序提供头文件.静态链接库 和动态链接库 qt creator 是用于编程的IDE ,提供GUI界面绘制.代码编写.程序调试等多个功能. QT在win

Qt 与 Qt Creator 简介

该文章原创于Qter开源社区(www.qter.org),作者 yafeilinux,转载请注明出处! 一.Qt 与 Qt Creator 简介 Qt 是一个跨平台应用程序和 UI 开发框架.使用 Qt 您只需一次性开发应用程序,无须重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应用程序. Qt Creator 是全新的跨平台 QtIDE(集成开发环境),可单独使用,也可与 Qt 库和开发工具组成一套完整的 SDK(软件开发工具包). 其中包括:高级 C++ 代码编辑器,项目和生成管理工

QT通过 QT designer 可以生成 ui文件

.生成方式:QT通过 QT designer 可以生成 ui文件  (.ui  && .ui.h) 2.UI文件内容: 以XML方式记录了QT designer生成的界面的相关内容,大体可以分为如下内容 widget属性,其内容(图形元素, layout..)的相关属性 头文件 变量 槽 函数 3. 通过UIC  (user interface compiler)可以把UI文件内容翻译成标准.h, .cpp文件 uic使用方法: 生成声明(.h)文件:    uic [options] &

Qt以及Qt Designer怎样加入资源文件

本篇经验主要是作者开发在VS上开发Qt程序的时候遇到的问题,现在分享给大家,主要就是在Qt中嵌入如图像等资源文件. 如有疑问欢迎留言. 工具/原料 Qt Designer Qt Open Source 4.8.5 方法/步骤 在Qt Designer中如果在设计UI界面的时候要加入一些图素,图标等资源的时候是不能直接添加进去的,需要在Qt开发目录下编写QRC文件. QRC文件是类似于XML格式的文件,可以手动创建. 首先穿件一个TXT文本,然后键入如下图所示的格式.在其中添加你想要的资源文件,最

Qt图形库——Qt画图板

Qt图形库--Qt画图板 完整代码: //mainwindows.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QColorDialog> #include <QInputDialog> #include <QActionGroup> #include <QFileDialog> #include <QMainWindow> #include <QKeyEvent> #in

Qt高级——Qt信号槽机制源码解析

Qt高级--Qt信号槽机制源码解析 基于Qt4.8.6版本 一.信号槽机制的原理 1.信号槽简介 信号槽是观察者模式的一种实现,特性如下:A.一个信号就是一个能够被观察的事件,或者至少是事件已经发生的一种通知:B.一个槽就是一个观察者,通常就是在被观察的对象发生改变的时候--也可以说是信号发出的时候--被调用的函数:C.信号与槽的连接,形成一种观察者-被观察者的关系:D.当事件或者状态发生改变的时候,信号就会被发出:同时,信号发出者有义务调用所有注册的对这个事件(信号)感兴趣的函数(槽).信号和

Qt高级——Qt插件开发

Qt高级--Qt插件开发 一.Qt插件机制 1.Qt插件简介 插件是一种遵循一定规范的应用程序接口编写出来的程序,定位于开发实现应用软件平台不具备的功能的程序. 2.Qt插件API Qt提供了两种API用于创建插件:一种是高阶API,用于扩展Qt本身的功能,如自定义数据库驱动,图像格式,文本编码,自定义样式等:一种是低阶API,用于扩展Qt应用程序. 3.通过插件扩展应用程序功能 A.定义一个接口集(只有纯虚函数的类),用来与插件交流.B.用宏Q_DECLARE_INTERFACE()将该接口告