我的Python程序有一个用gtk3编写的GUI(我通过from gi.repository import Gtk
使用gtk3)。我调用Gtk.main()
来运行GUI。除了运行GUI之外,程序还应该不断地监视标准输入以获取传入的命令,并将响应写入标准输出。你知道吗
在Python中使用gtk3的正确方法是什么?有什么方法可以将stdin侦听器挂接到Gtk.main()
上吗?我可以使用Python的标准I/oapi来读取sys.stdin
并写入sys.stdout
,还是需要使用一些等效的glibapi?我可以只写对stdout的响应吗?或者我需要关心缓冲,并将输出代码挂接到一些油腔滑调的I/O抽象上吗?你知道吗
我设法拼凑了一个非常基本的剧本:
尝试将
ls
管道连接到它。if line == ''
很重要:如果流已经准备好被读取,并且读取没有返回任何字节,那就意味着文件结束。如果我们不停止监视文件末尾的流,我们将得到对on_stdin
的无休止的调用,因为Unix认为文件末尾流总是可以读取的(请参见Why does poll keep returning although there is no input?)相关问题 更多 >
编程相关推荐