1

我制作了一个创建 html 文件的函数。如何在用户系统的浏览器中打开?

在 python 中,我会导入 webbrower,然后调用 webbrowser.open("file.html")。

如何在精灵中达到相同的结果?

4

2 回答 2

2

Pythonwebbrowser模块是一种打开浏览器窗口的跨平台方式。我不知道 Genie 或 Vala 有类似的跨平台模块,因此您必须使用特定于平台的命令。

在基于 Linux 的平台xdg-open上是以标准方式跨桌面打开应用程序的命令。这应该适用于现代版本的 Gnome、KDE、XFCE 等。

从 GLib 2.40 开始,在 Genie 中打开外部命令的首选方式是使用 GLib GIO 的 GSubprocess。在 Genie 中,这将类似于:

init
    try
        var command = new Subprocess( SubprocessFlags.NONE,
                                      "xdg-open",
                                      "http://stackoverflow.com/tags/genie/"
                                      )
        command.wait()
    except error:Error
        print error.message

这需要使用 GIO 包编译:

valac --pkg gio-2.0 my_xdg_open_example.gs

上面的例子等待命令完成,GSubprocess 可以异步使用。您还可以轻松访问 STDIN、STDOUT 和 STDERR。请参阅Subprocess - ValadocSubprocessFlags - Valadoc

这也可用于在 Web 浏览器中打开本地文件,只要该文件的 MIME 类型已配置为在浏览器中打开即可。HTML 文件应该没问题。

于 2015-12-28T12:58:36.070 回答
1

linux 的一种可能选择是:

Process.spawn_command_line_async ("sensible-browser file.html")

于 2015-12-28T08:05:49.047 回答