我对编程很陌生,我尝试的第一件事就是编写自己的文件管理器(用于学习目的)。我使用 python2.7 和 GTK+ 3 库。
在编写文件管理器时,我遇到了问题:如何对当前文件夹文件的更改做出反应?例如,我在文件管理器中打开了主文件夹。然后另一个程序在那里创建新文件。文件管理器应刷新文件列表并显示实际结果。我该如何实施?
我的文件管理器的代码可在github上找到。
GIO是您应该在这里使用的。它由 GTK 所基于的 GLib 提供。不要使用轮询来执行此操作。轮询通常很慢、消耗资源(CPU、电源——因为它可以防止 CPU 进入深度睡眠模式)并且对异步 API 没有任何好处,后者只会在内容发生更改时通知您。另请参阅PyGTK/GIO:递归监控目录更改。
您以这种方式导入它:
from gi.repository import Gio
顺便说一句,我正在删除问题的 PyGTK 标记,因为 PyGTK(应该用于 GTK 2)已经过时,取而代之的是PyGObject(应该用于 GTK3)。
编辑:
这是python + GTK3 教程的链接。