上位机图像处理和嵌入式模块部署(树莓派4b和qt应用全屏占有)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

我们都知道,嵌入式应用一般都是为了某一个特定应用而存在的。也就是说,和pc不同,这个嵌入式板子一般都是为了解决单一问题存在的,所以通常情况下,我们都希望板子一启动的时候,界面就可以覆盖整个屏幕,实现用户和功能之间的交互。这也是一个常规的操作。

首先我们也来聊聊,怎么实现程序的全屏覆盖。另外,我们看看,如果程序实现了全屏覆盖了,那么又该怎么退出来。

1、程序的全屏覆盖

要实现程序的全屏覆盖,整体来说,并不难,

复制代码
#include <QApplication>
#include <QWidget>
 
int main(int argc, char *argv[]) 
{
    QApplication app(argc, argv);
 
    QWidget window;
    window.setWindowState(window.windowState() | Qt::WindowFullScreen);
    window.setWindowFlag(Qt::ToolTip, true);
    window.show();
 
    return app.exec();
}

这里面最重要的就是对windows属性的设定。只要完成这个属性的设置,那么窗口自然而然就会放到最大。整体来说,效果还是非常不错的。

复制代码
    window.setWindowState(window.windowState() | Qt::WindowFullScreen);
    window.setWindowFlag(Qt::ToolTip, true);

2、编译和测试

准备好了代码,下面自然而然就是编译和测试了。这里编译因为是单文件,没有使用到qt creator,所以就直接使用g++编译了。编译的时候,输入下面这条命令即可,

复制代码
g++ -std=c++11 -o myapp main.cpp -I/usr/include/aarch64-linux-gnu/qt5 -I/usr/include/aarch64-linux-gnu/qt5/QtWidgets -lQt5Core -lQt5Widgets -lQt5Gui -lQt5DBus -lQt5XcbQpa -lpthread

执行确认效果的话,因为我们没有屏幕,所以这部分可以直接用real vnc viewer测试下,效果是一样的。

3、退出全屏

既然实现了全屏显示,下面就有一个问题,如果我们调试的时候,又该怎么退出全屏呢。这里有两种方法,一种是在程序里面添加mouse,或者是keyboard的响应事件,如果过按下了什么按键,自动退出app;还有一种方法就是用ssh登录树莓派4b,直接kill对应的程序就可以。具体哪一种看大家自己的选择了。

相关推荐
BT-BOX18 分钟前
第7章《Stm32CubeMX+Proteus仿真入门》--独立按键扫描
stm32·嵌入式硬件·proteus
广药门徒24 分钟前
PADS 等长处理方法
嵌入式硬件
3壹2 小时前
STM32按键检测与上拉电阻详解
c语言·stm32·嵌入式硬件
昵称只能一个月修改一次。。。2 小时前
【无标题】
单片机·嵌入式硬件
AI+程序员在路上2 小时前
新手进入嵌入式行业方法与方向选择
c语言·开发语言·单片机·嵌入式硬件
The️2 小时前
STM32F407 + LVGL 图形界面开源开发板
stm32·单片机·嵌入式硬件·开源·硬件工程·开源协议·pcb工艺
爱喝纯牛奶的柠檬3 小时前
【已验证】STM32驱动RC522_RFID模块实现卡片识别
stm32·单片机·嵌入式硬件
老师用之于民3 小时前
【DAY34】基于 IMX6ULL 的嵌入式系统底层开发:中断、时钟与定时器配置
单片机·嵌入式硬件
不怕犯错,就怕不做3 小时前
Linux中的IS_ENABLED 函数实战使用demo
linux·驱动开发·嵌入式硬件
ytttr8733 小时前
MAX31856热电偶采集芯片参考代码(STM32实现)
stm32·单片机·嵌入式硬件