【发布时间】:2021-04-04 06:16:10
【问题描述】:
我正在尝试监视一个目录,以便在 Gtk 应用程序中检测文件何时添加到其中并采取措施。
我编写了以下 Gio / Gtk sn-p 来进行实验,但如果我创建一个带有 echo tata > tutu 之类的文件或者我移动了一个文件,例如 mv tutu plop,则没有检测到事件:
#!/usr/bin/env python3
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gio, Gtk
def directory_changed(monitor, f1, f2, evt):
print("Changed:", f1, f2, evt)
def add_monitor(directory):
gdir = Gio.File.new_for_path(directory)
monitor = gdir.monitor_directory(Gio.FileMonitorFlags.NONE, None)
monitor.connect("changed", directory_changed)
win = Gtk.Window()
win.connect("destroy", Gtk.main_quit)
add_monitor('.')
win.show_all()
Gtk.main()
如果重要的话,我在 debian 11 (bullseye) 上使用 python3.7,python3-gi 包版本是 3.30.4-1。
有人知道我做错了什么吗?
【问题讨论】:
-
它也没有工作,但奇怪的是我添加的另一个打印语句没有出现。难道Gtk改变了标准输出?
标签: python-3.x gtk gio