1、Ubuntu18.04 中QT环境
1)下载安装包
官网 https://download.qt.io/archive/qt/
国内镜像服务器 https://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt/
(嫌麻烦的直接看文章最后,安装包都打包好了)
2)安装
把下载好的qt安装包(qt-opensource-linux-x64-5.9.1.run)
拷贝到 共享文件夹下
打开虚拟机,进入qt安装包所在的共享文件夹的目录下
如: /mnt/hgfs/share/00_软件工具/
用ls命令查看 确认安装包的存在
安装:
./qt-opensource-linux-x64-5.9.1.run 然后按下 回车
根据安装向导,有下一步则下一步,有skip则skip,直到完成
点击完成之后,会自动打开 QtCreator
建议--》右键选中QtCreator图标--》添加到收藏夹,下次使用时直接点击即可
3)配置
运行QT项目时,可能会出现如下的错误:
找不到 -lGL
原因:
QT程序在运行时依赖于系统的某一个库,库名叫GL,连接时需要找到这个库才能正常运行
解决方案:
在虚拟机的 /usr/lib/x86_64-linux-gnu/ 目录下 有一个 libGL.so.1.0.0
需要在 /usr/lib/ 目录中 给上述库 建立一个软连接,指令如下:
sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.1.0.0 /usr/lib/libGL.so
2、GEC6818开发板中QT环境
1)把 交叉编译资料包解压,然后进去 把 qt-armlib-591.tar.xz 拷贝到共享文件夹下
2)在虚拟机中 进入共享文件夹,找到上述的压缩包
如: cd /mnt/hgfs/share/00_软件工具/01交叉编译/
3)进行解压 到指定目录 /opt/
sudo tar xvf qt-armlib-591.tar.xz -C /opt/
4)解压完成之后 会在 /opt/ 目录下生成一个文件夹 qt-armlib-591 ,然后进入该目录
cd /opt/qt-armlib-591/
5)把 /opt/qt-armlib-591/ 目录下的一个压缩包 qt-6818lib.tar.xz 下载到开发板的个人的工作目录
在开发板上
创建个人的工作目录
mkdir /目录名
如: mkdir /xuxu
然后进入个人工作目录
如: cd /xuxu
然后 把 qt-6818lib.tar.xz 下载到开发板的个人工作目录下
rx下载 或者 u盘拷贝 或者 网络传输 ...
===================
u盘拷贝 (只支持部分u盘的文件格式)
cd /mnt/udisk/
cp qt-6818lib.tar.xz /xuxu/
6)进入开发板的QT库目录
cd /usr/local/Qt-Embedded-5.7.0/
然后清空该目录下的所有文件
rm * -rf
再解压 qt-6818lib.tar.xz 到QT库目录下
tar xvf /xuxu/qt-6818lib.tar.xz
解压完成之后 得到两个文件夹 lib, plugins
7)测试开发板的QT的环境
下载测试程序 qt-arm-test 到开发板上
rx qt-arm-test
chmod 0777 qt-arm-test
运行
./qt-arm-test
3、Ubuntu18.04中 QtCreator配置交叉编译(arm-kit工具套件)
1)打开 QtCreator
2)找到 QtCreator 的菜单 --》 工具 --》 选项 --》构建与运行
3)在 构建和运行界面 找到 “编译器”
添加--> GCC --> C
名称: arm-linux-gcc
编译器路径:/usr/local/arm/5.4.0/usr/bin/arm-linux-gcc
添加 --> GCC --> C++
名称: arm-linux-g++
编译器路径:/usr/local/arm/5.4.0/usr/bin/arm-linux-g++
点击 Apply
4)在 构建和运行界面 找到 “QT Versions”
添加,在弹出的对话框中 找到ARM版本的qmake ( /opt/qt-armlib-591/bin/qmake )
选中qmake, 点击OPEN ,最后点击 Apply
5)在 构建和运行界面 找到 “构建套件 kit”
点击添加,在新出现的界面中 修改如下的4个选项:
名称: Arm Qt 5.9.1
设备类型: 通用Linux设备
编译器:
C: arm-linux-gcc
C++: arm-linux-g++
Qt版本: Qt 5.9.1 (qt-armlib-591)
点击 Apply
配置完成!
6)测试
创建一个空白的界面程序 ,在创建工程时,选择自己配置的 ARM-kit (Arm Qt 5.9.1 )
运行
(1)本地部署(在虚拟机里面运行): 直接点击 运行按钮 即可
(2)部署到开发板上: 点击 运行按钮的上方的那个按钮
选择 Arm Qt 5.9.1 --》 Release
点击 构建(锤子形状的按钮)
然后在到工程所在的同级的目录下 找到对应的工程文件目录
生成的可执行文件名 和 工程名 同名
4、QT的简介
官网 www.qt.io
QT 是一个基于C++的 跨平台的 应用程序开发框架
跨平台:
一次编写,到处编译
主流的平台都支持,如:Windows,Linux,Android,MacOS ...
应用程序:
主要用于GUI程序开发,也可以用于后台或者底层程序开发
开发框架:
有现成的库可供使用,提高开发效率
5、第一个QT程序
1)用 QtCreator 创建一个工程
欢迎 --> New Project --> 其他项目 --> empty qmake project
2)在空的pro项目中
添加文件: 右键点击项目 --》 添加新文件 --》C++ --》 C++ source file --》命名
添加模块:
QT += widgets
3)第一个应用程序
#include <QApplication> //所有的QT程序都必须加载此头文件,用于管理这个应用程序
#include <QWidget> //空白的界面
int main(int argc, char* argv[])
{
//实例化一个QApplication类型的对象,用于管理整个应用程序,如接收命令行参数
QApplication a( argc, argv );
//实例化一个QWidget空白界面对象w,默认隐藏
QWidget w;
//显示界面
w.show();
//让应用程序进入事件循环,让界面不退出,并能够接收用户的事件,如:鼠标点击、键盘输入等...
a.exec();
return 0;
}
点击“运行” Ctrl + r
6、QT程序的补充
QT中所有的头文件都是以大写字母Q开头,Q后面的单词首字母也是大写
头文件没有后缀名,头文件的名称也是类名称
所有的QT界面应用程序 都必须包含 QApplication类,用这个类来实例化一个对象,用于管理整个QT项目
QT中的类型 是按功能 划分 模块
模块很多,但是和界面相关的模块主要用到如下模块:
core 核心模块,其他的所有模块都依赖于此模块,默认加载
gui 界面相关的功能模块,如字体、颜色、风格等,默认加载
widgets 界面元素(所有能够在界面上看到的控件)都放在此模块中,需要用户自己添加到pro文件中
添加方式:
QT += widgets
QT += core
QT += gui
每个模块中都包含很多类,widgets模块中最核心的类型就是 QWidget
QWidget类 有两个基类 和 许多派生类
两个基类:
QObject 这个是QT层次中 最顶层的基类,它提供了QT最核心的功能:信号与槽
QPaintDervice 这也是一个顶层基类,该类以及它的派生类 能够作为绘制设备使用
它的派生类可以分为两类:
界面类
QMainWindow 就是包含菜单、工具栏、状态栏的界面
QDialog 对话框
控件类
菜单、工具栏、状态栏、按钮、文本框、标签、组合框架 ...
所有的控件都应该出现在某个界面上
pro文件
所有的QT项目中 都必须包含一个pro文件(工程管理文件)
描述了这个项目中所有的东西(头文件/源文件/界面文件/模块/第三方库/...)
影子构建
QtCreator在默认情况下 把项目的源码(.h/.cpp/.ui/...) 与
中间以及结果(.o/Makefile/xxx ...)文件 分开存放,源码在项目的文件夹下,
而中间以及结果文件 跟随项目的文件夹, 与项目文件夹在同一个目录中
存放中间以及结果文件的文件夹 称为构建目录 ,名称:
build-项目名称-编译套件名-模式
例如:
build-test2-Arm_Qt_5_9_1-Release
build-test2-Desktop_Qt_5_9_1_GCC_64bit-Debug
build构建目录 可以删除,只需要重新构建即可 都会自动生成
如果是从其他地方拷贝过来的项目,建议删除build构建目录,再重新编译