首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >构建以自定义QT/X11应用程序为桌面背景的嵌入式安装程序

构建以自定义QT/X11应用程序为桌面背景的嵌入式安装程序
EN

Unix & Linux用户
提问于 2019-11-02 15:31:21
回答 1查看 283关注 0票数 0

我正在用QT5 (用于X11)编写一个自定义应用程序,它将用于嵌入式安装程序。当系统启动时,我希望系统能够引导到我的应用程序中,我的应用程序的主窗口实际上是桌面背景,任何其他窗口都应该打开,并且应该有正常的窗口管理工具。

这个系统是基于Debian的,我如何将这些数据组合在一起来实现呢?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2019-11-02 15:31:21

这个难题有几个小问题,一个问候者(我使用了sddm),一个窗口管理器(我使用了openbox)和应用程序本身。

首先,应用程序本身,我们需要告诉窗口管理器,我们的窗口是桌面背景,这是最难找到的细节,但最终查看了pcmanfm的源代码,一些实验和谷歌在其中的常量之一导致我找到了一个关于堆栈溢出的问题。最后,我在主窗口的构造函数中使用了以下代码。我将这段代码放在命令行参数后面,所以仍然可以按常规方式运行应用程序。

代码语言:javascript
运行
复制
setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
setAttribute(Qt::WA_X11NetWmWindowTypeDesktop);
setFixedSize(QApplication::desktop()->size());

注意:我最初使用的是“调整大小”,而不是setFixedSize,直到我尝试使用布局管理器时,布局管理器才决定扩展我的“桌面窗口”,这样它就不适合屏幕了。

为了将欢迎器、窗口管理器和我的应用程序绑定在一起,需要定义一个自定义的“会话”,我完成了两个文件,第一个文件是/usr/bin/starthhs上的shell脚本。

代码语言:javascript
运行
复制
#!/bin/bash
openbox --startup '/home/ubilinux/cvx86/gui asdesktop'

第二个是/usr/share/xsessions/handheldhyperspec.desktop的“桌面文件”。

代码语言:javascript
运行
复制
[Desktop Entry]
Type=Application
Exec=starthhs
TryExec=starthhs
Name=Handheld hyperspec 
Comment=Handheld hyperspec

最后,我需要将欢迎器配置为自动登录到我新定义的会话中。为此,我创建了一个文件/etc/sddm.conf.d/autologin,内容如下。

代码语言:javascript
运行
复制
[Autologin]
User=root
Session=handheldhyperspec.desktop
Relogin=
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/550043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档