Qt5.6.1移植海思Hi3521d(三)

2023-05-16

系列文章目录


Qt5.6.1移植海思Hi3521d(一)
Qt5.6.1移植海思Hi3521d(二)


前言

本章讲解如何将编译好的qt程序移植到海思Hi3521D板子上,并且能够启动qt界面,和正常显示中文


一、移植qt库

创建qt.conf,打包qt依赖库,具体参考我这篇博客Linux Qt程序打包发布
将编译好的Qt程序和qt.conf、QtLib文件夹放到同一目录,如下图所示:
在这里插入图片描述
QtLib目录下Core\Gui\Widgets三个库是必须的,其他库根据自己的需要拷贝,拷贝完之后,需要修改/etc/profile文件,需要修改的地方具体如下:

export LD_LIBRARY_PATH="/usr/local/lib:/usr/lib:/root/HelloQt/QtLib:/root/HelloQt/QtLib/lib"                                                                                                                                                                                                                                                                                                                                                                                                  
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0                                                                                                                                                                                                                                                        

修改完输入 source /etc/profile可立即生效

二、运行Qt界面

库和配置拷贝完之后,我们./HelloQt运行程序,可以发现,进程起来了,但是没有界面,因为海思的板子比较特殊,界面需要显示在图层上,具体说明如下:
在这里插入图片描述
所以,我上边/etc/profile配置时选的G0图层,对应的FB设备文件时/dev/fb0,我们需要做的时,打开fb之后,在显示QT界面就可以了,FB开发流程如下:
在这里插入图片描述

HiFB 的开发步骤如下:
步骤 1. 调用 open 函数打开指定的 HiFB 设备。
步骤 2. 调用 ioctl 函数设置 HiFB 的象素格式以及屏幕高宽等参数(详细内容请参见《HiFB API 参考》)。
步骤 3. 调用 ioctl 函数获取 HiFB 所分配的物理显存大小、跨度等固定信息。调用 ioctl 函数也 可以使用 HiFB 提供的层间 colorkey、层间 colorkey mask、层间 alpha、原点偏移等功 能。
步骤 4. 调用 mmap 函数将物理显存映射到虚拟内存空间。
步骤 5. 操作虚拟内存,完成具体的绘制任务。在此步骤可以使用 HiFB 提供的双缓冲页翻转等 功能实现一些绘制效果。
步骤 6. 调用 munmap 解除显存映射。
步骤 7. 调用 close 函数关闭设备。
----结束

具体细节我也讲不清楚,海思提供的开发包里面文档有详细说明,认真看就行了;
然后是打开HiFB具体功能函数,我这边就不方便提供了,我这边是拿的这个海思的demo改的,应该不难,demo具体路径为:

Hi3521D_V100R001C01SPC040\01.software\board\Hi3521DV100_SDK_V1.0.4.0\package
\mpp\sample\hifb


打开fb之后,就可以创建qt界面,然后show显示,效果如下图:
在这里插入图片描述
只显示了字幕和数字,没有中文,原因是缺少字库

三、添加字库

`我这边是直接将字库编译到可执行程序中,main函数添加如下代码:

QFont iconFont;
int fontId = QFontDatabase::addApplicationFont(":/font/DroidSansFallback.ttf");
QStringList fontName = QFontDatabase::applicationFontFamilies(fontId);
if (fontName.count() > 0)
{
    iconFont = QFont(fontName.at(0));
}
else
{
    qDebug() << "load DroidSansFallback.ttf error";
}
a.setFont(iconFont);

使用此方法,则./QtLib/lib/下的fonts文件可以删除掉

在这里插入图片描述
你也可以配置字库路径,在/etc/profile中添加如下代码即可

export QT_QPA_FONTDIR=/root/HelloQt/QtLib/lib/fonts

再次运行qt程序,就可以了
在这里插入图片描述

总结

关于界面居中问题,打开fb里面可以设置,需要自己计算偏移位置居中,另外,附上我使用的 海思Qt中文字库

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt5.6.1移植海思Hi3521d(三) 的相关文章

  • 【FRP】群晖docker中部署Frp

    2022 08 24 by 崔斐然 0 xff1a 需求 公司有台笔记本 xff0c 现在疫情期间居家办公 我用的MacBook RDP客户端做的非常好用 xff0c 如相互粘贴文件 文字等 xff0c MacBook通过远程桌面连接公司内
  • Debian 9/10快速开启Google BBR的方法,实现TCP高效单边加速

    BBR 是谷歌公司的某个员工研发出来的服务器单边加速算法 xff0c Linux内核从4 9版开始集成BBR算法 相比锐速BBR的加速效果更为温和 xff0c 并且占用内存小对服务器压力也很小 xff0c 当时理想情况下是可以跑满整个服务器
  • 基于机器学习的捡球机器人设计与实现(探索)第4篇——机械设计)

    2019 03 18 by 崔斐然 原以为软件很复杂 机械好搞 结果发现 都难搞 一次次想出办法又一次次被自己否定 我tm想静静
  • 人脸识别之Hog特征+SVM分类器训练与使用

    原文来自 xff1a https juejin im post 5b0e70686fb9a00a1451c8e7 计算机视觉 人脸识别 xff08 Hog特征 43 SVM分类器 xff09 一 SVM支持向量机 1 SVM原理 在机器学习
  • python利用PIL实现对图片截图

    在对图像处理时 xff0c 我们有时候需要对图片某区域进行截图 xff0c 话不多说 xff0c 直接上代码 xff1a from PIL import Image import sys 先将 input image 填充为正方形 def
  • PowerMock介绍和用法

    PowerMock PowerMock简介一 PowerMock xff1f 二 Mock底层原理1 Mockito2 PowerMock原理 三 应用场景1 依赖问题 xff0c 打桩 2 工程质量 PowerMock使用步骤一 添加依赖
  • Windows10 WSL2磁盘迁移

    一 使用 WSL 命令行工具 在 Windows 10 版本 1903 xff08 2019 年 4 月更新 xff09 或更高版本中 xff0c 您可以使用wsl exe命令行工具 1 导出分布 使用要移动的分发创建一个 tar文件wsl
  • linux下搭建confluence

    一 Java环境 java环境 二 mysql 2 1 安装前的检查和准备工作 2 1 1检查 1 是否安装过mysql xff1a rpm qa grep mysql 2 如果有的话 xff0c 就删除 xff08 XXXX是自己的mys
  • 译:SOME/IP 技术细节

    译 xff1a SOME IP 技术细节 原文 SOME IP technical details SOME IP Scalable service Oriented MiddlewarE over IP 基于 IP 可扩展面向服务中间件
  • Python requests_toolbelt的使用

    multipart form data Encoder The main attraction is a streaming multipart form data object MultipartEncoder Its API looks
  • ArchLinux中文安装教程

    以自己的电脑安装为参考 xff0c 已安装win10系统 最后效果为win10和arch双系统 xff01 xff01 xff01 一 准备工作 1 按照实际需要划分出一部分空闲磁盘空间 xff0c 右击想要安装arch的分区点击删除卷 x
  • C++20 范围库:关键优势——算法的组合

    从概念上讲 xff0c 范围 xff08 Range xff09 是一个简单的概念 xff1a 它只是一对迭代器 指向序列的开始和结束 xff08 在某些情况下是一个哨兵 xff09 然而 xff0c 这样的抽象却可以从根本上改变编写算法的
  • Drupal菜鸟笔记之使用Focal Point 模块实现图片压缩与裁剪

    在项目开发中总是有地方需要上传图片 xff0c 因此也常常需要对图片进行压缩与裁剪来达到我们想要的效果 最近项目中刚好要用到 xff0c 我就去搜索了 解了下图片的压缩与裁剪模块 xff0c 最后选择了 Focal Point Focal
  • Linux系统学习——ubuntu16.04开机蓝屏问题

    1 蓝屏原因 由于频繁地强制关机等原因造成 xserver xorg包出现损坏 xff0c 故在开机时屏幕显示出现问题 1 1 顺便提一下 xorg xorg 我们知道 xff0c Linux内核本身是没有图形化界面的 xff0c 其本身是
  • 最小生成树 Kruskal算法 Prim算法 洛谷P3366

    最小生成树 Kruskal算法 Prim算法 洛谷P3366 相较于Prim算法 xff0c 我觉得Kruskal算法更优 xff08 因为一般情况 xff0c 题目给你的边数都是正常的 xff0c Kruskal算法的时间复杂度为O El
  • 13. 罗马数字转整数

    题目 罗马数字包含以下七种字符 xff1a I xff0c V xff0c X xff0c L xff
  • 【转载】重新安装Anaconda卡在Loading applications无法进入

    我出现这个问题的原因是 xff1a 之前安装Anaconda没在系统添加路径 xff0c 虽然可以正常使用Pycharm xff0c 但Visual Studio Code 不能调用python 因此在胡老师帮助下 xff0c 决定卸载原来
  • C++语法(三)string字符串的输入、拼接、删除、查找、截取、比较、遍历

    1 字符串的输入 1 输入不含空格的字符串 string str cin gt gt str 2 输入包含空格的字符串 string str 如果前面有了cin输入 xff0c 则还需添加如下一句 getchar getline cin s
  • Python的坑(4) -- 【if x:】的含义

    原文链接 xff1a http www liaoxuefeng com wiki 0014316089557264a6b348958f449949df42a6d3a2e542c000 001431675624710bb20e9734ef34
  • 交叉编译 acl

    交叉编译 acl 概述 访问控制列表 xff08 Access Control Lists xff0c ACL xff09 是应用在路由器接口的指令列表 在 Linux 系统中 xff0c ACL 用于设定用户针对文件的权限 xff0c 而

随机推荐

  • 使用xrdp实现windows 远程桌面连接linux

    之前一直用mstsc连接windows主机 xff0c 今天想用此来连接linux主机时 xff0c 发现 连接不了 xff01 xff01 与度娘亲热好久之后 xff0c 分享一篇博客给大家 xff1a 传送门 一般情况下我们用ssh客户
  • 【51单片机】定时器的简单应用——计时器

    一 定时器 stc89c52 具有三个定时器 xff08 T0 T1 T2 xff09 xff08 1 xff09 T0 T1均有四种模式 最常用模式1 xff08 2 xff09 定时器模式1工作框图 SYSclk xff08 系统时钟
  • 【51单片机】直流电机的驱动和PWM调速

    51单片机驱动直流电机与 PWM 调速是通过使用 51 单片机来控制直流电机的转速和方向 51 单片机通过控制电机的电流来实现驱动 xff0c 并通过生成 PWM 信号来调节电机的转速 使用 PWM 调速可以使得直流电机的转速精确可控 xf
  • vscode中安装 gotests gomodifytags impl goplay dlv staticcheck gopls时一直失败问题记录

    在VScode中配置golang环境时 xff0c 在我电脑设置了代理的情况下 xff0c 安装上面几个go的工具时 xff0c 一直提示失败 xff1a Installing golang org x tools gopls 64 lat
  • 计算机应用投稿经验

    计算机应用 正刊录用 xff0c 1月13日到3月14日共历时2个月 收稿 编辑部 2022 01 13 2022 01 13 2022 01 13 收审读费 编辑部 2022 01 13 2022 02 12 2022 01 18 初审
  • ajax调用产生Access-Control-Allow-Origin错误

    刚到新公司在现有界面增加功能时遇到的坑 xff1a ajax调用接口返回了405 xff0c 发现入参串的json格式数据有问题 xff0c 后台发生错误 xff0c 修改入参后继续调用 发现还是调用不通 xff0c 直接在浏览器输入后发现
  • Ubuntu16.04开机后黑屏无法进入系统登陆界面

    之前在写小论文 xff0c 接近一个月没有用Ubuntu xff0c 结果想要切换到Linux下使用Hadoop的时候 xff0c 在grub界面选择第一项Ubuntu却迟迟无法进入登陆界面 xff0c 一直卡在原地 xff0c 特征为长久
  • 【Django文档转译】第2章:模型层——第1节:模型(模块1:模型介绍)

    模型包含您的数据唯一而且准确的信息来源 它包含您正在存储的数据的重要插入和行为 一般来说 xff0c 每一个模型都映射一个数据库表 基础 xff1a 每个模型都是一个Python的类 xff0c 这些类继承 django db models
  • 【Linux云计算架构:第三阶段-Linux高级运维架构】第18章——CA认证过程及https实现方法

    本节内容 xff1a 18 1 CA认证流程 18 1 实战 xff1a 搭建CA认证中心 18 1 实战 xff1a 使用证书搭建https 实验环境 xff1a CA认证中心服务端 xff1a xuegod63 cn IP xff1a
  • Kali Linux 从入门到精通(六)-基本工具使用

    Kali Linux 从入门到精通 六 基本工具使用 基本工具 常用工具 经常使用且功能强大安全从业者必不可少的帮手Nc ncatWiresharkTcpdump NETCAT NC 瑞士军刀 基本介绍 网络工具中的瑞士军刀 小身材 大智慧
  • 交叉编译 iceoryx

    交叉编译 iceoryx 概述 iceoryx 是用于各种操作系统的进程间通信 xff08 IPC xff09 中间件 xff08 目前支持 Linux macOS QNX FreeBSD 和 Windows 10 xff09 它起源于汽车
  • 2022 manjaro安装中文输入法

    关于manjaro使用中文输入法 看网上安中文输入法都要搞半天 xff0c 还要改什么配置文件 xff0c 文章大多数也都是几年前的文章了 其实安装很简单 然后选择你需要的输入法 xff0c 我选了谷歌输入法和云输入法 输入密码安装就行了
  • VTK实现电影级渲染效果(CVR)

    目前vtk9 2 2版本中已经集成了ray marching xff08 光线步进 xff09 算法实现的体渲染功能 xff0c 官方博客中已经介绍为电影级体渲染了 xff0c 如图 xff1a 此效果是在3d显示器上的显示效果 xff0c
  • (一)树莓派3B+上手

    最近从闲鱼买了一个树莓派3B 43 xff0c 以此消遣不想加班的时间 相比于3B版 xff0c 3B 43 版处理器频率由1 2GHz升至1 4GHz xff0c 优化散热 xff1b WiFi支持2 4GHz和5GHz 双频 xff0c
  • 渗透测试-RCE远程命令/代码执行remote command/code execute

    RCE远程命令 代码执行 命令注入Command Injection 命令注入攻击 xff08 Command Injection xff09 使远程服务器执行 whoami 的命令 使远程服务器执行ipconfig命令 RCE remot
  • 运行维护-PostgreSql

    PostgreSql 下载安装地址安装组件数据目录设置superuser密码 端口安装语言安装完成 xff0c 是否安装Stack Builder 下载 https www postgresql org download windows h
  • 重置WSL2子系统发行版(WSL+Pycharm环境搭建系列之七)

    0 背景 有的时候 xff0c 我们完成一个项目的开发子系统的环境需要重置 xff0c 需要一个完全干净的新的虚拟机来重新部署 xff0c 或者子系统被我们玩坏了 xff0c 不得不重置一下 因为个人走了很多弯路 xff0c 又是卸载应用重
  • QT控件样式系列(二)之QPushButton/QToolButton

    系列文章目录 QT控件样式系列 xff08 一 xff09 之QSlider 文章目录 系列文章目录前言一 样式表二 相关应用1 场景一2 场景二3 场景三 前言 本篇主要讲解 QPushButton 和 QToolButton 的样式和使
  • Qt5.6.1移植海思Hi3521d(二)

    系列文章目录 Qt5 6 1移植海思Hi3521d xff08 一 xff09 前言 该篇讲解一下 xff0c 使用海思交叉编译器arm hisiv500 linux gcc xff0c 编译qt5 6源码 xff0c 搭建qt交叉编译环境
  • Qt5.6.1移植海思Hi3521d(三)

    系列文章目录 Qt5 6 1移植海思Hi3521d xff08 一 xff09 Qt5 6 1移植海思Hi3521d xff08 二 xff09 前言 本章讲解如何将编译好的qt程序移植到海思Hi3521D板子上 xff0c 并且能够启动q