pyosd 与解释器一起工作,但不能与脚本一起工作

pyosd 与解释器一起工作,但不能与脚本一起工作

我正在编写一个可以在屏幕上显示任意系统信息的脚本。为此,我一直在尝试使用pyosd模块。

考虑以下三行:

import pyosd
p = pyosd.osd()
p.display("ASKUBUNTU")

这在 Python 2.7 解释器中运行正常,但是从脚本运行时失败 - 没有抛出异常,但也没有显示任何内容。我该如何解决此问题?

我愿意接受其他建议,但这pynotify对我来说也行不通,因为它发出的通知不能放在屏幕的任意位置。还要注意,这gnome-osd-client也是一个有用的工具,但我需要一个独立的脚本,而不是使用外部应用程序。该脚本将针对其他用户,我不希望他们下载他们不需要的额外软件包

答案1

正如所述http://ichi2.net/pyosd/

常见问题解答

为什么我可以交互地显示文本,但不能在脚本中显示?

文本显示在不同的线程中,因此您需要让程序运行足够长的时间才能看到文本。通常这意味着在程序末尾添加以下函数调用:

my_pyosd_obj.wait_until_no_display()

因此,解决方案如下:

#!/usr/bin/env python
import pyosd
p = pyosd.osd( )
p.display("HELLOOOOOOOOOOOOOOOOOOOOOOOOOO")
p.show()
p.wait_until_no_display()

16.04

16.04 LTS 似乎删除了以前版本中使用的许多字体。安装 x11 字体并sudo apt-get install xfonts-75dpi重新启动后,代码可以使用在中指定的默认字体pydoc pyosd

default_font = '-*-helvetica-medium-r-normal-*-*-360-*-*-p-*-*-*'

在此处输入图片描述

相关内容