Kylin麒麟国产系统V10SP1下身份证阅读器Qt应用程序开发环境配置方法
Kylin麒麟国产系统 V10 SP1下身份证阅读器Qt应用程序开发环境配置
Kylin麒麟国产系统V10 SP1软件源中提供的Qt框架版本为5.12.8,qmake对应版本为3.1,Qt Creator对应版本为4.11.0。
一、下载软件包
1.1 安装Qt组件
执行命令:
sudo apt install qt5-default qtcreator
来进行Qt组件的安装。
qt5-default包中主要包括:
l qtbase,qt基础模块的集合,比如widgets,Gui等;
l qmake,qmake是Qt项目的构建工具,通过qmake将.pro文件生成make文件,进而完成项目的编译;
qtcreator包中主要包括:
l qtcreator,Qt官方的IDE。
l qt助手,Qt所有模块的说明文档
l qt linguist,Qt进行文字内容国际化的可视化工具,帮助开发者对程序中需要翻译的文字内容进行对应语言的翻译。
l qt设计器,Qt对UI文件进行布置的可视化工具。
1.2 安装程序编译工具
执行命令:
sudo apt install build-essential gdb
来进行开发工具的安装。
build-essential包中主要包括:
l libc6-dev
l gcc
l g++
l make
l dpkg-dev
装好gcc,g++,gdb,make这些常用的编译器,调试器和项目构建工具后是进行应用程序的开发和调试的前提。
二、使用Qt Creator创建项目
Qt应用程序的开发通常会使用Qt自带的IDE——Qt Creator,原因在于Qt Creator对于Qt模块高亮支持更完善,项目构建更简单。
2.1 配置构建套件
初次使用QtCreator,需要配置构建套件,即指定编译器,调试器,qmake工具等。
打开Creator,界面如下,点击“工具”-“选项..”,进行构建套件的配置。
点击“添加”按钮,新增一个构建套件,在对应位置选择好编译器,调试器,qmake工具。通常情况下,如果系统中已经安装了编译器,调试器,qmake,qtcreator会自动填充好,但是也有情况需要用户手动添加。
假如,当Qt Version一行中内容为空,即Qt creator没有自动寻找到qmake工具的路径。此时需要先判断一下系统中是否已经安装qmake。判断方法是在终端中输入”qmake -v”,如果不能能正常打印qmake版本,说明没有安装qmake,执行”sudo apt install qmake”进行安装。安装好qmake,点击“QtVersion”对应行的“manage”按钮,然后添加qmake路径,/usr/lib/qt5/bin/qmake。
2.2 创建项目
配置好构建套件后,可以开始创建Qt项目。点击“文件”-“创建文件或项目”。提供的模板如图所示,项目类型可以分为应用和库,应用类又提供了多个模块。以Qt Widgets Application为例,选定Qt Widgets Application后,点击“choose”。
接下来设置项目名称和路径,设置好项目名称和路径后,点击“下一步”。
下一步中是选择构建方式,Qt项目支持三种构建方式:
l qmake
l CMake
l Qbs
确定好构建方式后,进入到下一步,下一步骤中,主要确定类名,所要继承的父类,文件名,以及是否生成.ui文件。实际开发中常见的可以继承的父类有:QObject,QMainWindow,QWidget,QDialog等。
Qt中的UI界面可以通过加载.ui文件的方式搭建,也可以完全通过代码进行实现,所以创建项目时,提供选项让开发者自行决定是否需要生成ui文件。
后面的步骤一直点击“下一步”即可完成项目的构建。
2.3 高亮显示调整
构建好项目后,查看源码时可能会出现提示语法错误,以及语法高亮无效的情况。
解决办法是,点击“帮助”-“关于插件”,在弹出的对话框中,取消对“ClangCodeModel”的勾选,然后重启Qt Creator即可。
三、安装Qt扩展模块
在实际的项目开发中,可能会用到Qt组件中的其他扩展模块。需要安装对应的扩展包。可以通过搜索关键字“libqt5”查找包名,并结合模块的关键字进行查找。
比如要查找qt中数据库相关的扩展包,可以通过命令:
apt search libqt5 | grep sql
通过查找,确定确切的包名为libqt5sql5,通过sudo apt install libqt5sql5可以进行安装。
如果要在项目中引用sql模块,需要在.pro文件中添加
QT += sql
如果是cmake构建的项目,需要在CMakeLists.txt文件中添加
find_package(Qt5 COMPONENTS sql REQUIRED)