Qt简介

时间:2024-03-20 16:30:38

转载自:http://blog.csdn.net/k331922164/article/details/52729675#comments

----------------------华丽的分割线-----------------------------


这里的Qt不是指Qt语音平台,而是指GUI框架。

截止至本文的写作日期,Qt最新版是5.9,但仍有很多资料是基于Qt4,为了避免大家误入歧途,所以写了这篇文章。

Qt一开始是由奇趣公司开发的,后来被Nokia收购了,然后再被Digia收购了。所以有的人会误以为Qt就是为了塞班系统而生,是个落伍的产物。

但是很多嵌入式软件、桌面工具都是用Qt来开发的,包括Quartus和Cadence也有用到Qt。

诚然,Qt也是类似于C#、Java那样,专门用来开发图形界面的,那么Qt有哪些特别的地方呢?以下,一一介绍。

1、Qt能在哪些平台使用?

这里的平台是指操作系统,不是指CPU。Qt可以在Windows、LinuxAndroid、OS X下使用。

2、Qt是开源的,还是收费的?

是开源的,需要遵循LGPL、GPL协议。

3、Qt是使用什么语言开发的?

建议底层用C++做业务逻辑,上层用QML做图形界面。也可以纯C++开发,但是做界面时会比较累。

4、什么是Qt Quick,什么是QML,两者有什么关系?

Qt Quick只是一种技术名称,它本身不指代任何语言,但是,当别人说到Qt Quick一般是指用QML快速开发图形界面。

QML是一种类似于CSS的语言,语法非常简单易学,适合没什么编程经验的人。

5、什么是Qt Creator?

Qt Creator是Qt官方的IDE,专门用Qt框架开发图形界面的。

6、除了Qt Creator,还有什么IDE可以用?

目前比较流行的是Visual Studio,简称VS。Qt Creator一安装好就能使用,但是VS是需要自己设置才可以用。

7、Qt Creator的原生编辑器有Vi / Vim模式吗?

有,叫Fake Vim,按照下图设置即可。

Qt简介


8、新手入门应该学哪个版本的Qt?

应该学最新的Qt5,推荐教材《Qt Creator快速入门》、《Qt Quick核心编程》,以及官方自带的英文文档。

9、哪里能找到Qt的官方文档?

打开Qt Creator,如下图,Help,就是了。

Qt简介

10、什么是pyQt?

pyQt是指用Python脚本语言来调用Qt框架,从而快速开发图形界面。但是商业使用pyQt,是要收费的。

目前亚马逊上面只有一本关于pyQt4的书——《PyQt编程指南》,而目前最新的是pyQt5。

推荐《pyQt5参考手册》、《PyQt5 tutorial》。

11、我现在只学习C、C++语法,不做图形界面,可以使用Qt Creator编译、运行代码吗?

可以。Qt Creator自带MinGW编译器可以编译C、C++。但不是所有从Qt官网下载的安装包,都带有MinGW编译器,下载时需特别注意。

新建工程时,使用以下工程模板即可。

Qt简介

12、如何使用Qt开发3D图形界面?

可以使用Open GL,请参考《QT OpenGL教程》。

13、为什么随便写一个Hello World,编译出来都30几MB?

因为Qt默认使用动态编译,所以编译出来体积超大。

14、怎样使用Qt静态编译代码?

请参考百度经验

15、怎样使用Qt发布应用?

动态编译的话,可以使用Qt Creator自带的windeployqt。

16、怎样把Qt的代码,移植到ARM?

你需要使用交叉编译器Arm Gcc,并设置硬件相关的参数。

17、Qt用在android、OS X上面多吗?

不多,所以不建议使用Qt开发Android、OS X的app。

18、Qt用在哪些地方比较多?

嵌入式开发、桌面开发。

19、哪里能下载到Qt?

https://www.qt.io/download-open-source/#section-2

在官网注册账号,登录,就可以在以上页面下载Qt了。

不想注册的话,也可以使用国内的镜像。

http://mirrors.ustc.edu.cn/qtproject/official_releases/qt/

20、Qt4和Qt5有什么区别?

Qt4一行代码,即可全局支持中文,Qt5默认支持中文。

Qt4不支持串口,需要使用第三方的串口库,Qt5支持串口。

此外,Qt4和Qt5还有很多区别,这里不一一列举。

21、有哪些好用的Qt第三方库?

第三方库,不是Qt官方开发的,而是由其它组织开发的。

比较出名的是QWT库,使用QWT库,可以轻松搞定各种图形界面,如:饼状图、示波器图、波特图等。

然而,QT自带的QtCharts比QWT库还要好用。QtCharts支持C++和QML混合编程,而QWT只支持C++。

22、哪里可以在线浏览Qt的类?

http://doc.qt.io/qt-5/classes.html

23、哪里可以在线浏览Qml的类型?

http://doc.qt.io/qt-5/qmltypes.html

24、怎样读取USB设备的信息?

可以使用WIN32的API捕获USB的消息(#include <windows.h>),或者使用libusb。

25、哪些版本的QT可以支持XP系统?

QT5.7.0及之前的版本都可以支持XP。

26、如何设置全局快捷键、获取全局鼠标坐标?

设置全局快捷键可以使用第三方库qxtglobalshortcut

获取全局鼠标坐标可以用QCursor::pos()。

27、如何设置窗口快捷键,应用程序快捷键?

C++的话,可以使用QShortCut类,QML可以使用ShortCut。

但是QShortCut和ShortCut,只在窗口或应用程序在focus时,才能使用快捷键,并非全局快捷键。

28、如何显示系统托盘?

Qt5.8或以上版本,可以使用QML的SystemTrayIcon;或者使用C++的QSystemTrayIcon类。

Qt5.8以下的版本(不含5.8)只能使用C++的QSystemTrayIcon类。

29、Qt的动态编译文件太多,如何打包成一个文件?

可以使用Enigma Virtual Box