在没有X11的情况下使用Python Gtk3绑定

时间:2012-03-24 20:40:52

标签: python gtk pygtk x11 pygobject

我有一个用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?

1 个答案:

答案 0 :(得分:1)

在没有DISPLAY的情况下,没有办法使用针对X11编译的gtk +。

但是你总是可以在xvfb中运行测试套件,xvfb是一个使用虚拟帧缓冲的X服务器,这样你就不需要从现有终端运行,但是你仍然需要X.它'非常简单;

xvfb-run.sh python testsuite.py