【问题标题】:Using Python Gtk3 bindings without X11在没有 X11 的情况下使用 Python Gtk3 绑定
【发布时间】:2012-03-24 20:40:51
【问题描述】:

我有一个用 Python 编写的小应用程序,它使用 Python Gtk3 绑定。部分应用从系统图标主题加载图标,如下所示:

def get_icon(name):
    from gi.repository import Gtk
    icon_theme = Gtk.IconTheme()
    if icon_theme.has_icon(name):
        return icon_theme.load_icon("status-red", 32, 0)

这正是我想要的——加载一个图标并给我一个GdkPixbuf.Pixbuf 实例。

当我的单元测试运行时,问题就来了。我有测试此代码的测试,如果测试在开发人员机器上运行,一切正常。

但是,测试是在构建包之前自动运行的(作为我们 CI 流程的一部分),并且应用包是在无头服务器上构建的。所以我的问题是:有没有办法只使用 Gtk3 中的 IconTheme 类而不需要运行 X11?

【问题讨论】:

  • 图标主题总是与Screen 相关联,如果没有X11,这是相当困难的。我会尝试在 Xvfb 中运行测试。

标签: python gtk pygtk x11 pygobject


【解决方案1】:

没有 DISPLAY 就无法使用针对 X11 编译的 gtk+。

但是您始终可以在 xvfb(使用虚拟帧缓冲区的 X 服务器)中运行测试套件,这样您就不需要从现有终端运行,但您仍然需要 X。这非常简单;

xvfb-run.sh python testsuite.py

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-11
    • 2018-06-23
    • 2019-06-28
    • 1970-01-01
    相关资源
    最近更新 更多