1461|11

207

帖子

0

TA的资源

一粒金砂(高级)

【Luckfox幸狐 RV1106 Linux 开发板】5-给系统移植QT环境__显示电子时钟界面 [复制链接]

 
本帖最后由 qiao--- 于 2024-2-13 10:56 编辑

前言:

在上期测评我成功驱动了TFT_RGB屏幕,这一期测评我们就在上期测评的基础上移植QT,这样我们就可以简单的开发各种好看的GUI界面。我这一期我打算用buildroot构建Linux的QT环境,大家对QT感兴趣的可以看一下我之前测评的另一篇移植QT的文章,那一篇是使用编译QT然后传输到板子的方式来移植QT。

 

1.buildroot配置选择QT并编译

我们进入buildroot目录进行图形化配置QT

cd <SDK 目录>/sysdrv/source/buildroot/buildroot-2023.02.6/
make luckfox_pico_defconfig
make menuconfig

我们搜索一下QT5,并跳转到其位置

image.png  

我们选中它,并进入配置一下QT,大家可以根据自己的情况自由配置QT,我的配置如下所示

image.png    

配置好后保存配置,并在当前目录编译一下

make savedefconfig 
make

这个过程需要持续一段时间,编译好后然后我们可以在output目录下看到一下编译结果

image.png  

image.png  

我进入SDK主目录下,编译出我们需要的文件系统格式

./build.sh rootfs

最终编译结果会输出到SDK的output目录下

我们将这个rootfs.img替换原来的那个烧录进系统就行了。

 

2.添加环境变量,并运行测试QT

我们进入系统的/usr/lib目录可以看到我们编译成功的QT库,如下

image.png  

证明我们的根文件系统构建的没有错,我们接下来部署一下环境变量,方便我们的程序调用上面的库

vi /etc/profile

image.png  

因为我的屏幕不是触摸屏,其实我只需要添加上面圈出的一部分就行了,如果大家的是触摸屏还需要添加上面的tslib部分的环境变量

现在我们的所有QT环境都已经部署好,我们运行一下QT自带的例子,效果如下

IMG_8470

 

3.显示电子时钟界面

我们进入QTcreator进行开发,大家对这个东西不了解的可以看一下我以前的测评。

我们将屏幕调整为我们屏幕的大小

image.png  

构建一个UI

image.png  

然后为这个UI添加上代码,如下:

#include "home.h"
#include "ui_home.h"

home::home(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::home)
{
    ui->setupUi(this);
    my_timer = new QTimer(this);
    connect(my_timer,SIGNAL(timeout()),this,SLOT(slot_timeout()));
    my_timer->start(1000);
     /* 设置样式*/
    QPalette pal = this->palette();
    pal.setBrush(QPalette::Background,QBrush(QPixmap(":/png/背景.png")));
    setPalette(pal);

    ui->label_time1->setText(QDateTime::currentDateTime().toString("yyyy-MM-dd ddd"));
    ui->label_time2->setText(QTime::currentTime().toString("hh:mm"));

}

home::~home()
{
    delete ui;
}

void home::slot_timeout(void){
    /*获取时间*/
    ui->label_time1->setText(QDateTime::currentDateTime().toString("yyyy-MM-dd ddd"));
    ui->label_time2->setText(QTime::currentTime().toString("hh:mm:ss"));

}

我们用交叉编译工具编译下移植到我们的板子上就行了。

给大家看看时钟的最后效果:

IMG_8473

 

总结:通过本期测评我能够成功的移植QT的开发环境,在此之后我们能够应用QT开出各种好看的GUI界面。

 

最新回复

你好,按照你的配置,我的应用到板子上什么字也不能显示。英文,汉字都不行。   详情 回复 发表于 2024-5-22 13:56

赞赏

1

查看全部赞赏


回复
举报

207

帖子

0

TA的资源

一粒金砂(高级)

本帖最后由 qiao--- 于 2024-3-22 14:15 编辑

可能有的不熟悉 QT的贴友会不知道如何编译,我这里把编译步骤给补充出来。
由于之前我的那个编译后的buildroot不见了,我这里又花了接近两个小时重新编译了一遍

接一楼帖子编译后的buildroot那个地方开始讲。我们将buildroot编译好后在<SDK目录>/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/build/qt5base-2ffb7ad8a1079a0444b9c72affe3d19b089b60de/qmake/qmake
目录下会有qmake编译构建工具如下图所示

image.png   我们可以在这个目录下看下qmake的版本

image.png   有了qmake之后,我们就可以在我们的QT工程下构建Makefile文件了,然后使用make进行编译就可以了

记住在编译之前最好配置一下SDK的交叉编译环境

cd <SDK目录>/luckfox-pico/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/
source env_install_toolchain.sh

这里我将qmake导出置环境变量export PATH=$PATH:<SDK目录>/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/build/qt5base-2ffb7ad8a1079a0444b9c72affe3d19b089b60de/qmake

我们以我之前的一个QT工程为例,在有.pro为后缀的文件夹下面输入qmake && make  就编译成功了

image.png  

最终会在当前目录下生成一个可执行文件,我们可以用file命令看看他是什么架构上的文件

image.png    

 

常见问题:

用qmake && make出现下面情况

image.png  

这个原因是你在用buildroot配置QT5的时候没有选上widgets,配置时候勾选上就行了

image.png  


回复

628

帖子

5

TA的资源

纯净的硅(高级)

 

非常感谢楼主分享的技术信息,楼主提供的技术资料声情并茂,非常实用

点评

感谢支持  详情 回复 发表于 2024-2-28 21:55

回复

207

帖子

0

TA的资源

一粒金砂(高级)

chejm 发表于 2024-2-28 21:29   非常感谢楼主分享的技术信息,楼主提供的技术资料声情并茂,非常实用

感谢支持


回复

6

帖子

0

TA的资源

一粒金砂(中级)

大佬如何交叉编译到RV1106里面,arm-rockchip830-linux-uclibcgnueabihf-gcc main.cpp -o main 报错,按照你这个帖子的话(https://bbs.eeworld.com.cn/thread-1267168-1-1.html),要怎么加进去,望指点。

点评

要看看错误,如果找不到arm-rockchip830-linux-uclibcgnueabihf-gcc 就要把环境变量加到系统里面。或者用绝对路径。或者用makefile cmake 但都要让命令认得路径。  详情 回复 发表于 2024-3-22 10:55
QT的工程是用makefile管理的,要用make进行编译,这里我下午依旧在这个帖子上会把编译的部分补充上来  详情 回复 发表于 2024-3-22 10:47

回复

207

帖子

0

TA的资源

一粒金砂(高级)

一荤一素 发表于 2024-3-22 10:39 大佬如何交叉编译到RV1106里面,arm-rockchip830-linux-uclibcgnueabihf-gcc main.cpp -o main 报错,按照 ...

QT的工程是用makefile管理的,要用make进行编译,这里我下午依旧在这个帖子上会把编译的部分补充上来


回复

5717

帖子

4

TA的资源

版主

一荤一素 发表于 2024-3-22 10:39 大佬如何交叉编译到RV1106里面,arm-rockchip830-linux-uclibcgnueabihf-gcc main.cpp -o main 报错,按照 ...

 

楼主用心了。

只可惜rv1106没mipi dsi接口。

 

要看看错误,如果找不到arm-rockchip830-linux-uclibcgnueabihf-gcc 就要把环境变量加到系统里面。或者用绝对路径。或者用makefile cmake 但都要让命令认得路径。


回复

6

帖子

0

TA的资源

一粒金砂(中级)

本帖最后由 一荤一素 于 2024-3-25 09:56 编辑
damiaa 发表于 2024-3-22 10:55   楼主用心了。 只可惜rv1106没mipi dsi接口。   要看看错误,如果找不到arm-ro ...

大佬真的牛

点评

如何交叉编译我已更新帖子,现在置顶为本帖的二楼,可以关注一下  详情 回复 发表于 2024-3-22 14:18

回复

207

帖子

0

TA的资源

一粒金砂(高级)

一荤一素 发表于 2024-3-22 11:18 不是编译器的问题,我可以编译其它程序在开发板上运行,是对QT的不熟悉。

如何交叉编译我已更新帖子,现在置顶为本帖的二楼,可以关注一下


回复

207

帖子

0

TA的资源

一粒金砂(高级)

一荤一素 发表于 2024-3-22 11:18 damiaa 发表于 2024-3-22 10:55   楼主用心了。 只可惜rv1106没mipi dsi接口。   要看看错误, ...

这里可以下各版本的QT  http://download.qt.io/archive/qt/



回复

1

帖子

1

TA的资源

一粒金砂(初级)

你好,按照你的配置,我的应用到板子上什么字也不能显示。英文,汉字都不行。

点评

你配置应该是对的,字库没有可用内容,搞一个字体文件到字库目录下就行了  详情 回复 发表于 2024-5-22 17:33

回复

207

帖子

0

TA的资源

一粒金砂(高级)

splendor 发表于 2024-5-22 13:56 你好,按照你的配置,我的应用到板子上什么字也不能显示。英文,汉字都不行。

你配置应该是对的,字库没有可用内容,搞一个字体文件到字库目录下就行了



回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表