用 C++ 编写一个简单的 linux 桌面环境 [关闭]
Posted
技术标签:
【中文标题】用 C++ 编写一个简单的 linux 桌面环境 [关闭]【英文标题】:writing a simple linux desktop environment in c++ [closed] 【发布时间】:2013-09-28 07:59:37 【问题描述】:我想写一个非常简单的Linux桌面环境或者一个不用DE就可以运行的程序,这是我的要求
应用程序或 DE 将是 IPTV 播放器(作为 IPTV 机顶盒) 我希望它在启动后直接运行(没有登录屏幕或类似的东西)
1- DE 将全屏
2- 无需运行任何其他 GUI 程序,只需通过我的应用程序调用命令行程序,因此无需窗口管理器或显示管理器(如果可能)
3-最少的服务,只想连接到局域网并读取 rtp (udp) 流
4-使用Qt和Qt Quick编写这个DE或应用程序,如果不能使用openGL
5-必须使用 libvlc 或任何其他库来读取和播放 rtp 流
6-使用apt-get安装或删除包
7-键盘和鼠标支持
我是一名 c++ 和 Qt 程序员,我有良好的 Linux 管理背景
如果您有任何想法来帮助编写 DE 或者如果有任何直接在 XWindow 上运行的现有 DE,请提供帮助
DE 将像 PC 一样用作普通 DVB 接收器来列出频道并选择一个观看
如何将我的 Qt 应用程序作为 DE 启动并将其放入 /usr/share/xsessions 作为 /usr/share/xsessions/myDE.desktop
如何配置 Qt 在没有窗口管理器或显示管理器的情况下运行
我应该使用 QApplication 还是任何其他类来运行我的应用程序
【问题讨论】:
我想知道如何编写这个 DE,如何将 linux 引导到我的应用程序而不是 gnome 或任何其他 DE 我可以在这个 DE 中使用 Qt 还是 Qt 必须在窗口管理器中运行 【参考方案1】:首先我想说的是,您应该只考虑 Qt 5,而忘记 Qt 4。带有 QWS 的 Qt 4 设计有点陈旧,因此存在缺陷。 Qt 5 有一个很好的 QPA(Qt Platform Abstraction)接口,可以轻松添加平台插件,使架构变得健壮和灵活。
如何配置 Qt 在没有窗口管理器或显示管理器的情况下运行
如果您想要一些轻量级的解决方案,您可以将 Qt 与适当的平台插件(例如 eglfs、linuxfb、directfb、minimal、minimalegl 等)一起使用,而无需复杂的窗口和显示管理器。
您可以在此处找到 Qt 5 当前尝试支持的平台插件列表:
https://qt.gitorious.org/qt/qtbase/source/475cbed2446d0e3595e7b8ab71dcbc1ae5f59bcf:src/plugins/platforms
我应该使用
QApplication
或任何其他类来运行我的应用程序
不,你应该使用QGuiApplication 来处理这类事情。 QApplication 适用于基于小部件的 Qt 5 应用程序,这是您应该使用的主要 Qt 版本。
很遗憾,Qt Quick 2 渲染依赖于 OpenGL api 的可用性,因此您需要准备好它以供参考。这并不一定意味着使用 GPU 进行硬件加速。拥有基于软件的开放标准实现也很好。
【讨论】:
以上是关于用 C++ 编写一个简单的 linux 桌面环境 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
C++基础——Ubuntu下编写C++环境配置总结(C++基本简介Ubuntu环境配置编写简单C++例程)
[Linux]编写一个简单的C语言程序,编写Makefile文件。
从用 C++ 编写的桌面应用程序过渡到基于 Web 的应用程序