8

是否可以在没有有效 X 显示的情况下使用 GTK?

我想将 GTK 与 Webkit 一起使用,但目前我只对使用 DOM 函数进行实验感兴趣,因此我不需要实际显示任何内容。在没有显示器的服务器上通过 SSH 连接执行此操作对我来说非常方便。

但是,如果没有DISPLAY环境变量,gtk_init()只会失败并显示以下消息:

Gtk-WARNING **: cannot open display:

无论如何在没有显示器的情况下使用 GTK 吗?

4

4 回答 4

7

有一个名为 Xvfb 的 X 服务器,它提供一个有效DISPLAY的并将输出发送到文件而不是图形硬件。您可以在运行 gtk 客户端的同一台机器上运行它,而 gtk 将能够在不使用任何网络带宽的情况下做它想做的任何事情。作为奖励,您可以从文件中读取 Xvfb 的输出缓冲区,从而获得屏幕上的屏幕截图。

于 2012-07-27T21:06:15.457 回答
1

虽然这不是您问题的直接答案,但我认为您正在寻找的是“无头”网络浏览器。有一个基于 WebKit,称为PhantomJS。它不需要任何 GUI 堆栈,您可以在那里自由地试验 DOM。

于 2012-07-27T21:59:09.840 回答
1

Gtk+ 3(好吧,GDK)现在支持多个后端,但仍然需要 X11、Wayland 或 Broadway(实验性 HTML5 后端)才能运行。

DISPLAY不一定需要实际的硬件;你可以运行一个假的 X 服务器,例如Xvfb或 Xvnc。

于 2012-07-28T00:56:38.830 回答
1

我很高兴我更深入地阅读了文档并且不只是相信这个答案。

gtk_init_check()

此函数与 gtk_init() 的工作相同,只有一个更改:如果窗口系统无法初始化,它不会终止程序。相反,它在失败时返回 FALSE。

于 2017-05-04T22:25:55.340 回答