是否可以在没有有效 X 显示的情况下使用 GTK?
我想将 GTK 与 Webkit 一起使用,但目前我只对使用 DOM 函数进行实验感兴趣,因此我不需要实际显示任何内容。在没有显示器的服务器上通过 SSH 连接执行此操作对我来说非常方便。
但是,如果没有DISPLAY
环境变量,gtk_init()
只会失败并显示以下消息:
Gtk-WARNING **: cannot open display:
无论如何在没有显示器的情况下使用 GTK 吗?
有一个名为 Xvfb 的 X 服务器,它提供一个有效DISPLAY
的并将输出发送到文件而不是图形硬件。您可以在运行 gtk 客户端的同一台机器上运行它,而 gtk 将能够在不使用任何网络带宽的情况下做它想做的任何事情。作为奖励,您可以从文件中读取 Xvfb 的输出缓冲区,从而获得屏幕上的屏幕截图。
虽然这不是您问题的直接答案,但我认为您正在寻找的是“无头”网络浏览器。有一个基于 WebKit,称为PhantomJS。它不需要任何 GUI 堆栈,您可以在那里自由地试验 DOM。
Gtk+ 3(好吧,GDK)现在支持多个后端,但仍然需要 X11、Wayland 或 Broadway(实验性 HTML5 后端)才能运行。
DISPLAY
不一定需要实际的硬件;你可以运行一个假的 X 服务器,例如Xvfb或 Xvnc。
我很高兴我更深入地阅读了文档并且不只是相信这个答案。
gtk_init_check()
此函数与 gtk_init() 的工作相同,只有一个更改:如果窗口系统无法初始化,它不会终止程序。相反,它在失败时返回 FALSE。