Python:文本覆盖在所有窗口之上,包括 Linux 中的全屏
Posted
技术标签:
【中文标题】Python:文本覆盖在所有窗口之上,包括 Linux 中的全屏【英文标题】:Python: text overlay on top of all windows including fullscreen in Linux 【发布时间】:2017-02-02 09:28:32 【问题描述】:我正在尝试用 python 编写一个简单的脚本,在所有窗口和全屏应用程序的顶部输出文本。
此脚本的目的是以与 Steam FPS 计数器工作类似的方式输出平均负载和可用内存(以及其他有用的统计数据)。
到目前为止,我尝试了 pygame,但据我所知,它只能写入自己的窗口。
据我所知,我需要直接写入帧缓冲区?
目标操作系统是带有 Nvidia 卡和 Xorg 的 Linux,但我希望它与硬件无关。
非常感谢!
【问题讨论】:
您无法写入帧缓冲区。 X11 是一种网络协议,没有可以访问的帧缓冲区。不过,您可能必须使用低级 x11 API。这并不简单。 【参考方案1】:我正在尝试做同样的事情,到目前为止它有效 - 但我不确定全屏应用程序 - 使用 PyOsd: http://python-osd.sourcearchive.com/documentation/0.2.14-5.1/index.html
最简单的例子是
import pyosd
p=pyosd.osd()
p.display("Hello world!")
【讨论】:
谢谢!这样可行。该库有点笨重,但可以完成工作。它甚至可以在 3D 全屏应用程序中使用! 不客气!我很高兴它有帮助,很抱歉没有使用密码箱。您是否还尝试让 OSD 以每秒 20/30 帧(或更高)的速度更新? 这很好,但几秒钟内更新一次就足以了解事情的要点,特别是找出瓶颈在哪里。以上是关于Python:文本覆盖在所有窗口之上,包括 Linux 中的全屏的主要内容,如果未能解决你的问题,请参考以下文章