2010-05-20 57 views
1

我是python的新手,我试图用pygtot和GUI接口使用pyinotify。我有两个类,我的gtk类没有多少功能,只显示内容,还有一个处理监视的类。Pyinotify不能用pygtk运行

当我运行他们分开,他们做他们的工作,但是当我尝试从另一个加载GTK类,它只运行GTK类,监控类,当我退出GUI只运行。如果我评论最后一行,显示器运行良好。我认为“myGTK.main”阻止了整个过程。有什么我可以做的吗?

pyinotify.ProcessEvent.__init__(self) 
self.notifier = pyinotify.ThreadedNotifier(self.watch_manager, self)  
self.watch_manager.add_watch('/test', pyinotify.IN_CREATE, rec=True) 
self.notifier.start() 
self.myGTK.main() 

谢谢。

+0

你看过http://faq.pygtk.org/index.py?file=faq20.006.htp&req=show?你的代码结构与那里发布的示例代码相比如何?你使用'gobject.threads_init()'并且你的pygtk是用--enable-threads标志编译的吗? – unutbu 2010-05-20 20:51:10

+0

伟大的链接unutbu,我只是把“gobject.threads_init()”的常见问题解答说,一切工作正常。 谢谢。 – juniorbl 2010-05-20 22:21:40

+0

太棒了!很高兴它对你有效。 – unutbu 2010-05-21 11:35:49

回答

4

每的意见,解决问题的方法是添加

gobject.threads_init() 

附近的脚本的顶部。这个以及其他有关使用pygtk线程的有用信息可以在this faq中找到。