引言
该环境搭建在Ubuntu 18.04 Server系统下,且需要外接屏幕的硬件体系下。接下来将介绍测试硬件环境:
1)ARM64的xxx开发板(带HDMI输出口)
2)烧写了Ubuntu 18.04 Server系统
3)通过HDMI外接显示屏
1、qt5开发环境搭建
1.1 更换roc1 ubuntu18.04的源
由于ROC1是arm64平台,我试用了大部分源都对arm64都支持的不是很好,不过华为麒麟的源支持的很好,这里就拿更换华为麒麟的apt源来记录过程。
wget -O /etc/apt/sources.list https://repo.huaweicloud.com/repository/conf/Ubuntu-Ports-bionic.list
sudo apt-get update
注意:
更换源之前记得备份原始的source list
1.1 weston框架搭建
1)安装apt-add-repository工具
sudo apt-get install software-properties-common
sudo apt-get update
2)安装weston框架
sudo apt-get update && sudo apt-get install weston xwayland
3)运行weston框架(在root下进行)
export XDG_RUNTIME_DIR=/tmp
weston --tty=1 --backend=drm-backend.so --use-pixman &(使用的是软件渲染加速)
4)安装qtwayland框架,为了使qt demo运行在weston框架下,需要安装qtwayland库
sudo apt-get install qtwayland5
2、Qt框架搭建
首先ubuntu18.04 支持的Qt版本如下所示,为Qt5.9.5
2.1 qt5环境搭建
1)首先查询一下qt5相关的包:
2)安装最基础的qt5-default
sudo apt-get install qt5-default
注意:默认会安装qmake
3)查看安装库
在路径/usr/lib/aarch64-linux-gnu/下有qt5的安装库
4)demo测试
- 环境配置
export QT_QPA_PLATFORM=wayland
export XDG_RUNTIME_DIR=/tmp
weston --tty=1 --backend=drm-backend.so --use-pixman &
- 运行:python3 demo.py
./demo platform wayland
2.2 pyqt5环境搭建
1)首先查询一下pyqt5有哪些包版本
与python2相关的:
2)安装python3-pyqt5
sudo apt-get install python3-pyqt5
安装提示中python3-pyqt5中包含qt5的包
上图中,包含了qt5的基础包文件,也就是能够使用其相关库来开发基础demo,但是要使用其它的功能库,还需要安装相应的包,如下图所示:
下图为安装python3-pyqt5时,提示即将安装的相关包。
3)demo测试
- 环境设置:
export QT_QPA_PLATFORM=wayland
export XDG_RUNTIME_DIR=/tmp
weston --tty=1 --backend=drm-backend.so --use-pixman &
运行:python3 demo.py
小技巧配置1:
由于串口终端下,进入的路径太长,所以需要设置只显示最后进入的目录,设置方法如下:
1)修改.bashrc文件(用户根目录下)
vim 打开.bashrc文件,找到如下这行:
PS1='${debian_chroot:+($debian_chroot)}\[email protected]\h:\w\$ '
将上面这行代码中的小写w改为大写的W,保存退出(wq)
2)在终端下执行 source .bashrc
完成上面两步操作之后,重新进入到一个目录,此时在终端下只显示当前文件所在目录名称。
小技巧配置2:
要测试qt5的demo,最简单的是install qtbase5-examples。执行如下命令:
sudo apt-get install qtbase5-examples
在/usr/lib/aarch64-linux-gnu/qt5/examples路径下会有相关demo
以widgets为例,其下有丰富的demo:
- 进入calculator 计算器demo
- 执行qmake生成makefile文件
- 执行make,即可编译出计算器demo可执行文件calculator。
- 运行./ calculator –platform wayland 即可。