本文主要说明Qt的图形用户界面(GUI)开发流程,包括Qt程序自启动配置与案例介绍,旨在帮助开发者完成产品开发与测试。
Windows开发环境:Windows10 64bit
Linux开发环境:VMware16.2.5、Ubuntu22.04.4 64bit
LinuxSDK开发包:LinuxSDK-[版本号](基于RK3506_LINUX6.1_SDK_Release_V1.1.0_20241128)
评估板系统版本:U-Boot-2017.09、Linux-6.1.99、Buildroot-2024.02
Qt版本:Qt-5.15.11
备注:本文基于256MByte NAND FLASH、256MByte DDR3配置核心板进行演示。
为便于阅读,下表对文档出现的关键术语进行解释;对于广泛认同释义的术语,在此不做注释。
Qt组件支持情况如下,详情请查看产品资料“4-软件资料\Linux\Filesystem\buildroot-feature-support”文件。
本文档默认使用HDMI显示,使用USB TO UART0作为调试串口。
进行本文档操作前,请先按照《开发环境搭建》文档,安装VMware虚拟机、Ubuntu系统、SecureCRT串口调试终端等相关软件。
创龙科技TL3506-EVM是一款基于瑞芯微RK3506J/RK3506B处理器设计的3核ARM Cortex-A7 + ARM Cortex-M0国产工业评估板,主频高达1.5GHz。评估板由核心板和评估底板组成,核心板CPU、ROM、RAM、电源、晶振等所有元器件均采用国产工业级方案,国产化率100%。同时,评估底板大部分元器件亦采用国产工业级方案,国产化率约为99%(按元器件数量占比,数据仅供参考)。核心板经过专业的PCB Layout和高低温测试验证,支持选配屏蔽罩,质量稳定可靠,可满足各种工业应用环境要求。
评估板接口资源丰富,引出2路Ethernet、3路USB2.0、2路CAN-FD、RS485、RS232等通信接口,同时引出LVDS OUT、MIPI DSI、HDMI OUT、TFT LCD、HP OUT/MIC IN等音视频多媒体接口。评估板板载WiFi模块,支持选配4G模块、PLP断电保护模块,并可选配外壳直接应用于工业现场,方便用户快速进行产品方案评估与技术预研。
Qt开发环境主要包括Qt Creator工具、X86端Qt环境、ARM端Qt环境、交叉编译工具链等。当用户使用Qt Creator工具和X86端Qt环境编写并编译Qt工程后,生成的Qt程序镜像仅可在X86端运行。必须使用适配评估板的ARM端Qt环境、交叉编译工具链编译Qt工程,生成的Qt程序镜像方可在ARM端(即评估板)上正常运行。
LinuxSDK开发包中已提供适配评估板的ARM端Qt环境(5.15.11),请先参考《开发环境搭建》和《Linux系统开发手册》安装、编译LinuxSDK,构建适配评估板的交叉编译工具链和qmake工具。可基于命令行或Qt Creator工具对已有Qt工程进行编译,生成ARM端Qt程序镜像。
我司提供的Qt工程位于产品资料“4-软件资料\Demo\qt-demos”目录下,其中src目录下包含Qt工程源码,bin目录下包含ARM端Qt程序镜像。请将整个qt-demos文件夹拷贝至Ubuntu工作目录下,如下图所示。
Qt Creator是一款专为Qt框架设计的跨平台集成开发环境(IDE),提供代码编辑、调试、项目管理和界面设计等功能,支持高效开发Qt应用程序。
执行如下命令,安装Qt Creator。
Host# sudo apt install qtcreator
执行如下命令,查看Qt Creator版本。
Host# qtcreator -version
执行如下命令,加载环境变量。
Host# source /home/tronlong/RK3506/rk3506_linux6.1_release_v1.1.0/buildroot/output/rockchip_rk3506/host/environment-setup
执行如下命令,启动Qt Creator。
Host# qtcreator
启动Qt Creator工具后,点击菜单栏"Tools -> Options…"。
点击"Kits",打开配置选择页面。
点击"Compilers -> Add -> GCC -> C++ -> Browse…",选择平台交叉编译工具链中的arm-buildroot-linux-gnueabihf-g++,然后点击Open确认。具体路径为:
/home/tronlong/RK3506/rk3506_linux6.1_release_v1.1.0/buildroot/output/rockchip_rk3506/host/bin/arm-buildroot-linux-gnueabihf-g++
选择后,Name修改为"RK3506-GCC",ABI选择"arm-linux-generic-elf-32bit",再点击Apply,如下图所示。
点击"Qt Versions -> Add",选择平台qmake,然后点击Open确认。具体路径为:
/home/tronlong/RK3506/rk3506_linux6.1_release_v1.1.0/buildroot/output/rockchip_rk3506/host/bin/qmake
选择后,Version name修改为"RK3506-qt5"再点击Apply,如下图所示。
请参照下图配置Kits各选项。点击"Kits -> Add",将Name修改为"RK3506",Device type选择"Generic Linux Device",Compiler的C++选择"RK3506-GCC",Debugger选择"None",Qt version选择"RK3506-qt5",点击Apply,然后点击OK完成配置。
本章节使用led_control案例演示编译Qt工程。
请在Qt Creator界面,点击"Open"。
选中Qt工程源码目录中.pro文件,点击Open。
勾选RK3506平台Kits,点击"Browse…"选择Qt程序镜像生成的路径,选择好后点击"Open",如下图所示。
点击"Configure Project"进行工程配置,如下图所示。
右击Qt工程,点击Build进行Qt工程编译,生成可在评估板上正常运行的ARM端Qt程序镜像,如下图所示。
编译完成后,将生成可在评估板上运行的ARM端Qt程序镜像,如下图所示。
本章节使用led_control案例进行演示。进入led_control工程源码目录,配置交叉编译工具链环境变量,执行qmake命令生成Makefile文件,再执行make命令编译生成可在评估板上正常运行的ARM端Qt程序镜像,如下图所示。
Host# cd qt-demos/image_display/src
Host# source /home/tronlong/RK3506/rk3506_linux6.1_release_v1.1.0/buildroot/output/rockchip_rk3506/host/environment-setup
Host# qmake
Host# make
本章节以led_control案例为例,演示Qt程序自启动功能。led_control案例主要实现图形化界面控制LED灯亮灭的功能。
请将案例bin目录下可执行程序led_control拷贝至评估板文件系统"/etc/init.d/"目录。评估板上电启动进入系统后,执行如下命令,赋予可执行程序权限。
Target# chmod a+x /etc/init.d/led_control
执行如下命令,新建一个开机自启动脚本文件。
Target# vi /etc/init.d/S99led_control
开机自启动脚本文件内容如下:
. /etc/profile
/etc/init.d/led_control &
添加内容后,请保存退出,执行如下命令修改开机自启动脚本文件权限。
Target# chmod a+x /etc/init.d/S99led_control
Target# sync
执行如下命令,移除LVGL程序脚本,关闭rk_demo桌面显示程序。
Target# mv /etc/init.d/pre_init/S10lv_demo ~
请将评估板断电重启,Qt程序将会自启动。Qt程序运行成功后,可观察到HDMI显示屏显示LED控制界面,可通过鼠标点击界面控制LED。
执行如下命令,取消led_control程序自启动,并恢复rk_demo桌面显示程序。
Target# mv /etc/init.d/S99led_control /etc/ //取消led_control程序自启动
Target# mv S10lv_demo /etc/init.d/pre_init/ //恢复rk_demo桌面显示程序
本案例基于Qt框架实现加载图片文件并输出至屏幕显示的功能。
程序支持自动按比例缩放图片,以确保图片能够完整地显示;支持常规的PNG和JPG图片格式。
评估板默认支持HDMI显示,如需选用其他屏幕进行显示,请参考《评估板测试手册》中的“显示模块测试”章节完成硬件连接和替换对应的内核镜像,并参考本文档“触摸屏Qt程序测试说明”章节进行案例测试。
请通过HDMI线将HDMI显示屏与评估板HDMI OUT接口连接。进入评估板文件系统,将ARM端Qt程序镜像拷贝至评估板文件系统任意目录下,同时将image_display工程bin目录下文件名为test.jpg的JPG格式图片拷贝至相同路径。请在Qt程序镜像所在路径下执行如下命令。
查看程序运行参数
Target# ./image_display
参数解释
image path:图片路径。
rotation:该参数为1,则竖屏显示。
关闭rk_demo桌面
请执行以下命令关闭rk_demo,否则rk_demo将会覆盖Qt程序。
Target# killall rk_demo
横屏显示图片
执行以下命令,显示屏将显示如下图像,在调试串口终端按"Ctrl + C"或通过鼠标点击屏幕"Exit"按钮退出程序。
Target# ./image_display ./test.jpg
竖屏显示图片
执行如下命令,显示屏将显示如下图像,在调试串口终端按"Ctrl + C"或通过鼠标点击屏幕"Exit"按钮退出程序。
Target# ./image_display test.jpg 1
生成Makefile文件。
参数检查。
图片加载。
窗口大小调整与图片缩放。
本案例基于Qt开发框架实现通过显示屏界面控制LED亮灭的功能。
程序默认全屏显示。
评估板默认支持HDMI显示,如需选用其他屏幕进行显示,请参考《评估板测试手册》中的“显示模块测试”章节完成硬件连接和替换对应的内核镜像,并参考本文档“触摸屏Qt程序测试说明”章节进行案例测试。
请通过HDMI线将HDMI显示屏与评估板HDMI OUT接口连接。进入评估板文件系统,将ARM端Qt程序镜像拷贝至评估板文件系统任意目录下,请在Qt程序镜像所在路径下执行以下命令。
请执行以下命令关闭rk_demo,否则rk_demo将会覆盖Qt程序。
Target# killall rk_demo
执行如下命令,可观察到显示屏显示LED控制界面,可通过鼠标点击界面控制LED亮灭,按"Ctrl + C"或通过鼠标点击屏幕"Exit"按钮退出程序。
Target# ./led_control
用鼠标点击屏幕的按钮即可控制对应LED的亮灭。左上角的"Exit"按钮可用于退出程序。
生成Makefile文件。
获取主屏信息(分辨率),设置窗口大小。
获取LED当前亮灭状态。
设置LED亮灭。
关注微信公众号Tronlong创龙科技,可获取更多更新的干货。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有