学习Qt前你需要知道的

一、Qt是什么

简介

Qt是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器,并且是开源的,需要遵循LGPL或GPL协议。简单来说,QT可以很轻松的帮你做带界面的软件,甚至不需要你投入很大精力。

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

二、Qt的由来和发展

  • 1、Qt是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界 面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西。
  • 2.、Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,易于扩展,允许组件编程。
  • 3.、2008年,奇趣科技被诺基亚公司收购,QT也因此成为诺基亚旗下的编程语言工具。
  • 4.、2012年,Qt被Digia收购。
  • 5.、2014年4月,跨平台集成开发环境Qt Creator 3.1.0正式发布,实现了对于iOS的完全支持,新增WinRT、Beautifier等插件,废弃了无Python接口的GDB调试支持,集成了基于Clang的C/C++代码模块,并对Android支持做出了调整,至此实现了全面支持iOS、Android、WP。
  • 6.、Qt的版本众多,可分为两大家族:桌面平台家族与嵌入式平台家族。对于用户来说,桌面家族和嵌入式家族所调用的函数与类是一致的,这样当你移植一个系统时所做的改动就很少,甚至只需重新编译。Qt与Java同属跨平台的开发工具,但原理却完全不同:Qt的跨平台特征是在代码级实现而非运行级,不同的平台需要单独编译,因此也不需要什么虚拟机。如果说Java是“一次编译,到处运行”的话,Qt就是“一次编码,到处编译”。这种差异导致的结果是Qt开发的程序运行效率要高于Java开发的程序,可以用于工控等有实时性要求的场合。

三、Qt的特点

Qt的特点
  • Qt 是一个跨平台的C++应用程序框架,支持Windows、Linux、Mac OS X、Android、iOS、Windows Phone、嵌入式系统等。也就是说,Qt 可以同时支持桌面应用程序开发、嵌入式开发和移动开发,覆盖了现有的所有主流平台。你只需要编写一次代码,发布到不同平台前重新编译即可。
  • Qt 不仅仅是一个GUI库,它除了可以创建漂亮的界面,还有很多其他组件,例如,你不再需要研究STL,不再需要C++的头文件,不再需要去找解析XML、连接数据库、Socket 的各种第三方库,这些 Qt 都已经内置了。
  • Qt的良好封装机制使得Qt的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。Qt提供了一种称为signals/slots 的安全类型来替代callback,这使得各个元件之间的协同工作变得十分简单。
  • Qt 是应用程序开发的一站式解决方案!
  • Qt 虽然庞大,封装较深,但它的速度并不慢,虽不及MFC,但比Java、C#要快。Qt 程序最终会编译成本地代码,而不是依托虚拟机。
  • Qt包括多达250个以上的C++类,还提供基于模板的collections、serialization、file、I/O device、directory management和date/time类。甚至还包括正则表达式的处理功能。
Qt可以做什么
  • 使用 Qt 开发的程序非常多。1997年,Qt 被用来开发 Linux 桌面环境 KDE,大获成功,使 Qt 成为 Linux 环境下开发 C++ GUI 程序的事实标准。Linux 也是嵌入式的主力军,广泛应用于消费类电子、工业控制、军工电子、电信/网络/通讯、航空航天、汽车电子、医疗设备、仪器仪表等相关行业,这些地方都有 Qt 的影子。总的来说,Qt主要用于桌面程序的开发和嵌入式开发。

  • 在 Windows 下,GUI 解决方案比较多,基于C++的有 Qt、MFC、WTL、wxWidgets、DirectUI、Htmlayout,基于C#的有 WinForm、WPF,基于Java的有AWT、Swing,基于Pascal的有Delphi,还有国内初露头角的 aardio;如果你有Web开发经验,也可以基于Webkit或Chromium将网页转换为桌面程序。

Qt学习的注意事项:
  • Qt是一个标准的出c++应用程序框架,那么首先要对c++的概念以及语法有所了解,并学习相关知识。Qt可以很好的封装c++,c程序,做出精美的界面和软件。
  • QT分为4.0版本和5.0版本他们之间的差别很大,不通用!
  • Qt可以跨平台运行,一次编写可以跨平台编译,开发跨平台应用时也要多学习一些系统知识。
  • Qt作为诺基亚开发的一款软件比微软的mfc开发软件简单易学,尤其是其独创的信号和槽机制,比微软的消息机制更简单方便,容易被理解。因此,一定要对信号和槽机制很好的理解并掌握。这是Qt开发的核心机制。



原文地址:https://www.cnblogs.com/qsz805611492/p/9550301.html