关于QT

陆陆续续的接触QT一个月多了,不过对于我这个代码渣渣,还是真的搞不太清楚,所以有必要在这里总结回顾下。


QT是什么,有什么用?

Qt 是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。

备注1:图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。

Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,Qt很容易扩展,并且允许真正地组件编程。基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西。

备注2:我这个新手就接触个MFC,微软公司提供的一个类库,以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量,我一直以为QT=VC,是个编程工具,但其实正确意义上应该是QT=MFC,是个开发框架。

QT学习需要避免的坑

QT分为4.0版本和5.0版本他们之间的差别很大,不通用!所以要么你学习4.0要么你学习5.0,个人建议直接学习5.0,因为现在大部分的公司都转向了5.0,毕竟5.0支持的特性越来越多。4.0版本主要使用于嵌入式开发,如果你需要你可以学。

4.0版本主要使用4.7及4.8版本。5.0主要使用5.7及以上版本。

备注3:版本不通用的原因貌似在于开发团队公司不一样,QT被买卖了几次,4.0是诺基亚弄的,5.0是荷兰公司Digia开发的,此段来来于https://blog.csdn.net/mysunshinexia01/article/details/80553802

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、haiku-os。

备注4:这方面比MFC强大多了

关于Qt Creator

Qt Creator是跨平台的 Qt IDE, Qt Creator 是 Qt 被 Nokia 收购后推出的一款新的轻量级集成开发环境(IDE)。此 IDE 能够跨平台运行,支持的系统包括 Linux(32 位及 64 位)、Mac OS X 以及 Windows。

备注5:这个是QT IDE,相当于VC的存在,是个开发工具,被我这个新手给搞混了.

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 等等。

备注6:这个毋庸置疑,各种系统都有兼顾,从Win到Unix到ios(这个也是有的)再到小型嵌入式os和大型服务器os都是可以找到的,所以理论上跨平台性能特别好(当然对于一些特定版本可能有些问题),就像我最近做的麒麟项目,直接使用的就是LINUX版本的。

面向对象

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

Qt的核心机制————信号-槽机制(signals/slots ),区别于其他GUI工具的最主要特征。

信号(signal):当某个信号所对应的客户或其他所有者的内部状态发生改变时,信号被一个对象发射。只有定义过这个信号的类及其派生类能够发射这个信号。

槽(slot):被用于接收信号,它们通常是类中的成员函数,一个槽并不知晓是否有一个信号与自己联系,同样,包含有槽函数的对象,也对通信机制一无所知,它们也可以作为一个独立的软件构件。

备注7:面向对象吧,就这样理解吧,有一个机器只能看到接口,你把原料按正确的形式放到入口,就能从出口得到产品,而不需要考虑箱子里面是啥,大致是这个意思

备注8:信号与槽,实际动手就会看到对于控件需要给它添加信号,相当于触发的形式,可能是点击,也可能是数据变化,也可能是某个函数的返回值等等,而槽呢,则是当收到这些信号后的处理运行方法,是一种被动触发后的后续动作,相当于我让你坐下,是个信号,而你听到并做下去,就是槽,部分(这个博客有个简单例子可以看下)参考于https://blog.csdn.net/gw_cs/article/details/6713215

备注9:这里留个坑,或许会简单总结下

丰富的 API

Qt 包括多达 250 个以上的 C++ 类,还提供基于模板的 collections, serialization, file, I/O device, directory management, date/time 类。甚至还包括正则表达式的处理功能。

备注10:API(Application Programming Interface,应用程序编程接口),就是一些可以创建具体对象的类,有了这些类,我们可以很轻松的创建新的类,然后使用封装的各种根据函数,比如我想操作一个文件,直接使用QFile(像QDir等等有好几个),实例一个对象,然后调用它的成员函数进行具体操作即可。

备注11:这里再留个坑,会总结下常见的一些类,或许还会带上类的函数,很大的工作量,不过有很多前辈们都已经做了。

支持 2D/3D 图形渲染,支持 OpenGL

备注12:图像渲染是将三维的光能传递处理转换为一个二维图像的过程。场景和实体用三维形式表示,更接近于现实世界,便于操纵和变换,而图形的显示设备大多是二维的光栅化显示器和点阵化打印机。从三维的实体场景的表示到二维光栅和点阵化的表示就是图像渲染——即光栅化。光栅显示器可以看作是一个象素矩阵,在光栅显示器上显示的任何一个图形,实际上都是一些具有一种或多种颜色和灰度象素的集合。

备注13:OpenGL(Open Graphics Library,开放图形库)是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。这个接口由近350个不同的函数调用组成,用来从简单的图形比特绘制复杂的三维景象。而另一种程序接口系统是仅用于Microsoft Windows上的Direct3D。OpenGL常用于CAD、虚拟实境、科学可视化程序和电子游戏开发。

备注14:支持这个意思应该就是可以调用找些接口,进行图形渲染开发吧,这个我估计目前接触不到

大量的开发文档

备注15:这个也算。。好吧在帮助文档里对于具体的接口和使用有非常详细的说明文档(类似于MSDN的存在)

XML 支持

备注16:可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。是Internet环境中跨平台的、依赖于内容的技术,也是当今处理分布式结构信息的有效工具。

备注17:这个我真没有注意过,大概是用于数据的传输与存储吧,就像html可以显示网络数据。

安装

这个我的是默认安装的,没有经验,具体可以参考如下博客:https://blog.csdn.net/xiongtiancheng/article/details/80036605

QT常用的三个主要附件

Qt Designer(可以拖UI)

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

Qt Linguist(翻译用的)

Qt Linguist被称为Qt语言家。主要任务是读取翻译文件、为翻译人员提供友好的翻译界面,是用于界面国际化的重要工具。它能帮助你很容易读懂C++语言。

Qt Assistant(帮助手册)

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

备注18:没有注意过这个,参考于https://blog.csdn.net/mysunshinexia01/article/details/80553802

QT的基本使用

这个已经写好了,不过因为CSDN格式的问题一直没有上传,暂时占个坑吧。

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值