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

相关推荐
小曹要微笑5 小时前
STM32F7 时钟树简讲(快速入门)
c语言·stm32·单片机·嵌入式硬件·算法
XINVRY-FPGA5 小时前
XCVP1802-2MSILSVC4072 AMD Xilinx Versal Premium Adaptive SoC FPGA
人工智能·嵌入式硬件·fpga开发·数据挖掘·云计算·硬件工程·fpga
天天爱吃肉82188 小时前
电机控制技术深度解析:从基础原理到前沿实战
python·嵌入式硬件·汽车
学习路上_write8 小时前
FREERTOS_互斥量_创建和使用
c语言·开发语言·c++·stm32·单片机·嵌入式硬件
DIY机器人工房10 小时前
简单理解:什么是EMC 整改?
stm32·单片机·嵌入式硬件·面试题·emc·diy机器人工房
偶像你挑的噻20 小时前
11-Linux驱动开发-I2C子系统–mpu6050简单数据透传驱动
linux·驱动开发·stm32·嵌入式硬件
Chat_zhanggong3451 天前
K4A8G165WC-BITD产品推荐
人工智能·嵌入式硬件·算法
bai5459361 天前
STM32 PWM驱动LED呼吸灯
stm32·单片机·嵌入式硬件
智者知已应修善业1 天前
【51单片机普通延时奇偶灯切换】2023-4-4
c语言·经验分享·笔记·嵌入式硬件·51单片机
btzhy1 天前
STM32单片机:基本定时器应用:单脉冲模式(STM32L4xx)
stm32·单片机·嵌入式硬件·基本定时器应用:单脉冲模式