Linux中不启动桌面,让界面程序跑的时候跟有界面系统一样

4 篇文章 0 订阅

遇到的难题:

在Linux的系统中,本来在有桌面的系统下使用qt开发了一个桌面的程序,然后去掉桌面就发现很多的问题。系统启动的时候,不启动桌面,所以程序是自己独立运行的了。

  • 输入的控件获取不到焦点,输入时候虽然能输入,但是控件没有了输入的闪动,应该是焦点问题。
  • 弹窗的位置的变化,弹窗的位置不再是最中间的位置,变成了左上角的位置了。
  • 窗口背景透明失效
  • 还有其他的问题,后面就没有继续去测了。

分析问题和解决问题:

根据这个可以判断到,自己使用的桌面系统有关,既是桌面系统帮我管理的窗口,现在没有了桌面,就会发生这个问题。

目前想到的方法就只有两个:

  • 第一种
    是针对的性的去解决这个问题:
    比如,没有焦点,就在qt中,强制给设置焦点:
bool TestPanel::eventFilter(QObject *w, QEvent *e)
{
    if(e->type() == QEvent::MouseButtonPress){
        if(w->isWidgetType()) {
            qApp->setActiveWindow(reinterpret_cast<QWidget*>(w)->window());
        }
    }
    return QWidget::eventFilter(w, e);
}

但是有些问题还是不能用第一种方法去解决。背景透明问题,还没有找到方法。

  • 第二种
    给增加一个窗口管理器,让窗口管理器跟桌面系统一样帮我管理窗口问题。
    我这里使用的mutter窗口管理器。
    当然还有其他的,不同的窗口管理器还不一样,这个需要自己去试一下。
Linux中 Mutter 的安装
Mutter 是 GNOME 桌面环境的默认窗口管理器,负责管理窗口的显示、布局和交互。

sudo apt update
sudo apt install mutter

启用 Mutter:
mutter

有许多其他的窗口管理器(Window Manager)可供选择,以下是一些常见的窗口管理器:

  • Openbox: Openbox 是一个轻量级、灵活的窗口管理器,支持大量的配置和自定义选项。
  • Fluxbox: Fluxbox 是另一个轻量级的窗口管理器,具有简洁的界面和高度的可配置性。
  • i3: i3 是一个基于 tiled 窗口管理器,使用键盘快捷键来管理窗口-layout。
  • awesome: awesome 是一个高度可配置的窗口管理器,使用 Lua 语言来编写配置脚本。
  • KWin: KWin 是 KDE 桌面环境中的窗口管理器,支持大量的特效和可配置选项。
  • Xfwm: Xfwm 是 Xfce 桌面环境中的窗口管理器,轻量级、灵活和高度可配置。
  • Compiz: Compiz 是一个基于 OpenGL 的窗口管理器,支持大量的视觉效果和插件。
  • LightDM: LightDM 是一个轻量级的显示管理器,可以作为窗口管理器使用。
  • Sawfish: Sawfish 是一个基于 Lisp 语言的窗口管理器,高度可配置和灵活。
  • Enlightenment: Enlightenment 是一个功能强大、可高度配置的窗口管理器,支持大量的视觉效果和插件。

这些窗口管理器都有其特点和优缺点,选择哪一个取决于您的个人喜好和需求。

以下是一些窗口管理器的特点:

  • 轻量级:Openbox、Fluxbox、i3
  • 高度可配置:awesome、Sawfish、Enlightenment
  • 视觉效果:Compiz、KWin
  • 简洁易用:LightDM、Xfwm

注意:有些窗口管理器可能需要额外的 dependencies 或配置来工作正确。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值