【发布时间】:2018-04-01 19:30:22
【问题描述】:
我的 Python 程序有一个用 GTK 3 编写的 GUI(我通过 from gi.repository import Gtk 使用 GTK 3)。我打电话给Gtk.main() 来运行GUI。除了运行 GUI 之外,程序还应该不断地监视标准输入中的传入命令,并将响应写入标准输出。
在 Python 中使用 GTK 3 执行此操作的正确方法是什么?有什么方法可以将标准输入侦听器挂接到Gtk.main() 上吗?我可以使用 Python 的标准 I/O API 从 sys.stdin 读取并写入 sys.stdout 还是需要使用一些等效的 Glib API?我可以将我的响应写到标准输出还是我需要关心缓冲并将我的输出代码挂钩到一些 Glib I/O 抽象?
【问题讨论】:
-
为什么不直接使用idle事件呢?
-
这很可能是使用GLib.io_add_watch 对给定文件描述符上的事件做出反应来完成的。
-
这是一个使用
io_add_watch的示例。我让它运行,但它的行为很奇怪。 gist.github.com/fabrixxm/8deb791ad0930fa209be