【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱: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对应的程序就可以。具体哪一种看大家自己的选择了。