QT使用特点汇总

一.Qt的历史及功能介绍

Qt 最早在1991年由挪威的两位程序员 Eirik Chambe-Eng 和 Haavard Nord 开发,他们在1994年创立 Trolltech 公司(奇趣科技)正式经营软件业务。

Qt 的第一个公众预览版于1995年面世,之后在2008年被诺基亚收购;2011年到2012年,在诺基亚全面转向微软系后,将 Qt 软件业务出售给了芬兰 IT 服务公司 Digia;2016年,

Qt 公司从 Digita 独立出来并在芬兰上市;2017年获得 1500 万欧元投资;2018年在坚持了20多年后,Qt 终于迎来了物联网时代,在智能汽车、智能制造业等领域变得愈发重要。

Qt 可以开发支持Windows、Linux和macOS多平台的跨平台桌面应用软件,也可以开发iOS和Andriod移动平台的移动App,还可以用于嵌入式设备中的嵌入式应用软件的开发。

二.Qt的特点汇总

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

这里的平台是指操作系统,不是指CPU。Qt可以在Windows、Linux、Android、iOS、mac OS、QNX、VxWorks下使用。

把Linux移植到ARM上,也是能跑Qt开发出来的软件的。

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

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

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

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

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

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

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

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。

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

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

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

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

有某些方法,文档上并没有写,但是实际上是存在的。这时需要利用代码补全。

10、什么是pyQt?

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

目前只有一本关于pyQt4的书------《PyQt编程指南》,但是现在最新的是pyQt5。

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

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

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

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

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

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

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

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

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

请参考《Qt5.9.0 MingGW静态编译》,建议下载现成的静态库。

静态编译出来的文件非常大,建议使用UPX压缩壳。

其中,静态编译Qt5.7.0,需要卸载VC6.0,否则config不过。

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

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

动态编译后,可以使用NSIS制作成安装包。

静态编译,再加UPX压缩壳,即可发布,而且是单一文件。

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

QWT已经很久不更新了,所以,有的人会使用qcustomplot,它也是一个画图的第三方库。

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。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,但是可能会被杀毒软件杀掉。

使用NSIS制作成安装包。

使用第14点的静态编译。

30、C++有哪些第三方库?

除了C++自带的库(如STL库)以外的,还有第三方库。

较为出名的是Boost库,推荐《Boost程序库完全开发指南》。

31、如何让Qt运行单一实例进程?

可以使用QtSingleApplication。

32、如何实现命令行程序?

可以使用QCommandLineParser和QCommandLineOption。

参考文章:https://blog.csdn.net/qq_32348883/article/details/122832672

相关推荐
用户805533698034 天前
不止三件套:QObject 属性系统全关键字与运行时反射!
c++·qt
xcyxiner4 天前
DicomViewer (vcpkg Windows和ubuntu编译)7
qt
Quz9 天前
QML Hello World 入门示例
qt
xcyxiner12 天前
DicomViewer (dcmtk读取dcm文件)5
qt
xcyxiner13 天前
DicomViewer (后台线程处理文件)4
qt
xcyxiner13 天前
DicomViewer (添加模型类)3
qt
xcyxiner14 天前
DicomViewer (目录调整) 2
qt
xcyxiner14 天前
dcmtk vtk vtk-dicom(gdcm) 编译(debug) v2
qt
LDR00616 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术16 天前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript