Я пытаюсь сделать это в течение почти 24 часов, но я просто не могу заставить его работать и не нахожу примеров / решений, подходящих для моего варианта использования.
Что я пытаюсь сделать is:
- Просмотр каталога со сторожевым таймером при изменении файла
- при
on_modified
событие открытия tkinter GUI
Проблема: Main-Thread
проблемы с mainloop()
, и я нахожу только примеры для сценариев, где GUI всегда отображается с самого начала ..
Ошибка: WARNING: NSWindow drag regions should only be invalidated on the Main Thread!
или main thread is not in main loop tkinter
Пример минималистского кода:
class PopupWindow:
def __init__(self, master):
self.master = master
self.frame = tk.Frame(self.master)
# code for input fields
# ...
self.frame.pack()
def set_user_input(self):
self.master.destroy()
self.master.quit()
class MainClass(FileSystemEventHandler):
def __init__(self):
print("Watching files in '/directory-to-be-watched' for changes...")
def run(self):
print("Starting script")
root = tk.Tk()
app = PopupWindow(root)
# read input values ...
root.mainloop()
root.destroy()
def on_modified(self, event):
self.run()
event_handler = MainClass()
observer = Observer()
observer.schedule(event_handler, "/directory-to-be-watched", recursive=False)
observer.start()
try:
while True:
time.sleep(10)
except KeyboardInterrupt:
observer.stop()
observer.join()
ЛЮБАЯ помощь будет высоко оценена, заранее спасибо!