上位机图像处理和嵌入式模块部署(树莓派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对应的程序就可以。具体哪一种看大家自己的选择了。

相关推荐
黑妹天下第一乖8 小时前
第09讲 · 多媒体与音频 SDK:硬件编解码与端侧语音
人工智能·嵌入式硬件·深度学习·机器人·音视频·iot
comyccccc8 小时前
LM2596电源PCB布局布线全解析学习笔记
单片机·嵌入式硬件
恒锐丰科技林技术员10 小时前
EG2122 半桥栅极驱动芯片原理与工程应用解析
经验分享·嵌入式硬件·硬件工程
fly_sunnn12 小时前
STM32-GPIO输出以及按键控制LED&光敏传感器控制蜂鸣器
stm32·单片机·嵌入式硬件
数字新视界12 小时前
U位资产管理系统发布全面数字化监控解决方案
嵌入式硬件·物联网·系统架构·机房管理·动力与环境监控系统
qq_4017004114 小时前
FreeRtos:SysTick的功能分析
单片机·嵌入式硬件
zbyyd15 小时前
i.MX6ULL 裸机开发|GT9147 触控 + SPI 与 ADXL345 加速度传感器驱动
单片机·嵌入式硬件
fly_sunnn15 小时前
STM32-LED闪烁·LED流水灯·蜂鸣器
stm32·单片机·嵌入式硬件
殷忆枫17 小时前
基于STM32的独居老人语音/一键双模紧急呼救系统设计与实现
stm32·嵌入式硬件·xcode
袁章根17 小时前
基于瑞昱RTL8367S交换机电路设计(一)
网络·嵌入式硬件·硬件架构·硬件工程