zoukankan      html  css  js  c++  java
  • Qt学习(1)

    Qt学习(1)——简介

     

    1、什么是Qt   

        Qt是一个跨平台应的开发库,主要是开发图形用户界面(Graphical User Interface,GUI)应用程序,当然也可以开发非图形的命令行(Command User Interface,CUI)应用程序。 Qt支持众多的操作系统平台,应用广泛。使用Qt,只需要一次性开发应用程序,无需重新编码,即可跨不同桌面和嵌入式操作系统部署这些应用程序。Qt是面向对象的框架,使用特殊的代码生成扩展(元对象编译器)以及一些宏,易于扩展,允许组建编程。当然 Qt 库本身包含的功能模块也日益丰富, 一直有新模块和第三方模块扩充。除了与操作系统底层结合特别紧密的,如驱动开发, 需要利用操作系统本身的函数库实现之外,其他大部分的应用程序开发都可以用 Qt 实现的。 Qt 是纯 C++ 开发的,所以学好 C++ 比较有必要。Qt 还存在 Python、Ruby、Perl 等脚本语言的绑定, 也就是说可以使用脚本语言开发基于 Qt 的程序。开源社区就是这样,好东西就会被派生扩展,到处使用, 越来越壮大。

    (1)、优良的跨平台特性:

        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 、VxWorks、Android、IOS、WinPhone等。

    (2)、面向对象:

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

    (3)、丰富的API:

         Qt 包括丰富的 C++ 类,还提供基于模板的 collections,serialization, file, I/O device, directory management, date/time 类。甚至还包括正则表达式的处理功能,支持 2D/3D 图形渲染,支持 OpenGL。

        初学者关于 Qt 编程一个可能的困惑就是 QML 和 C++ 该用哪个来编程,在 Qt4 时代主流的是传统部件(或叫控件)编程,所用的语言一般是 C++。 Qt5 诞生之时,正是手机移动设备蓬勃发展的时候,而传统的 C++ 部件编写的界面对手机应用程序却不是很方便,比如手机屏幕显示随意翻转, 这在传统桌面程序里基本遇不到,谁会将22寸显示器翻过来转过去呢。 为了适应手机移动应用开发, Qt5 将 QML 脚本编程提到与传统 C++ 部件编程相同的高度,力推 QML 界面编程,当然 QML 主要用于手机移动应用程序。 QML 包含大量使用手机移动设备的功能模块,比如基本部件(QtQuick模块)、GPS定位、渲染特效、蓝牙、NFC、WebkKit等等。 简单地说,如果是传统桌面应用程序,使用 C++ 部件开发就足够了,如果学习目标是手机移动应用开发,QML 是更好的选择。 本教程是针对传统 C++ 部件开发的,QML 目前不在考虑范围之内。 关于 QML 编程已经有相关书籍上市,读者可以去搜索 QML 、QtQuick 或 Qt5 等方面的书籍进行选购学习。 学习 QML 之前建议先学 C++ 部件编程,否则遇到底层问题,QML 不一定好处理,通常 QML 也会调用 C++ 编写的插件来完善功能。

    2、Qt的历史

         Qt 最早是1991年由挪威的 Eirik Chambe-Eng 和 Haavard Nord 开发的, 他们随后于1994年3月4号正式成立奇趣科技公司(Trolltech)。Qt原本是商业授权的跨平台开发库, 在2000年奇趣科技公司为开源社区发布了遵循 GPL(GNU General Public License)许可证的开源版本。 在2008年,诺基亚公司收购了奇趣科技公司,并增加了 LGPL(GNU Lesser General Public License)的授权模式。 诺基亚联合英特尔利用 Qt 开发了全新的智能手机系统 MeeGo,可惜遭遇了微软木马屠城,诺基亚被迫放弃了 MeeGo, 而 Qt 商业授权业务也于2011年3月出售给了芬兰IT服务公司 Digia。当然好消息是 Digia 于2014年9月宣布成立 Qt Company 全资子公司,独立运营 Qt 商业授权业务。目前 Qt 公司大力推广移动平台开发和商业应用, 总的来说 Qt 历经曲折,现在算是步入正轨了。

    3、Qt和智能手机

        Qt 目前支持主流的 Android、iOS、WinPhone 等智能机操作系统。MeeGo 是基于 Qt 开发的操作系统,由于被诺基亚抛弃了, 只剩一代绝版诺基亚 N9 手机。诺基亚手机部门出售给微软之后,大部分诺基亚手机系统开发人员都被遣散了。 原来诺基亚的一部分人成立新的 Jolla(卓蓝)公司,发布了 MeeGo 的衍生版智能手机系统 Sailfish(旗鱼),相应的手机和平板也发布开卖了。 另一拨人投靠了 Tizen(泰泽),Tizen 是英特尔和三星力推的智能手机系统,该系统整合了 Limo 和 MeeGo,因为 MeeGo 系统被诺基亚抛弃,英特尔其实是被出卖了,所以只能联合三星重造智能手机系统 Tizen。目前基于 Tizen 的首款手机三星 Z1 在印度上市了。在 Tizen 阵营,国内有中兴、百度涉及了。Qt 开源项目里也有 Qt for Tizen 版本,有兴趣的可以去搜搜。

        Qt 公司有专门针对移动开发的商业版本,20 欧元或 25 美元一个月。不做商业可以无视这个,用开源版本也是可以开发如 Android、iOS、WinPhone 应用的。

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

    本博客主要是记录学习各位前辈的文章,如有过度引用,请告知。写下来主要是加深印象,方便日后查看。

    原贴:https://lug.ustc.edu.cn/sites/qtguide/

    作者:Winland(winland0704@126.com)

  • 相关阅读:
    空指针的问题,感觉自己很傻
    在运行微服务架构的时候报错error creating bean h name 'advisor'.. Unsatisfied dependency..constructor argument with index 0...
    hibernate+oracle+主键varchar2类型,增加序列策略注解失败
    hibernate的报错异常
    7777端口的问题
    soapUI模拟发送json数据时,遇到的中文编码问题
    三、数组的使用
    四、内存中的数组
    一、初步认识数组
    二、数组的初始化
  • 原文地址:https://www.cnblogs.com/wyxsq/p/5010525.html
Copyright © 2011-2022 走看看