从回调类外传递GUI更新

时间:2012-05-17 18:35:43

标签: python gtk python-2.7

这是一个概念性问题。

我正在学习Python。我构建了一个GUI和一个回调类来处理事件。我想让回调类只处理事件,并在另一个.py文件中调用方法,其中所有繁重的工作都已完成。

但是,我的GUI中有一个进度条和一个显示该过程正在进行的所有工作的详细信息窗口。

如果我在回调类中拥有所有繁重的工作方法,我可以轻松更新进度条和详细信息窗口,然后调用:

while gtk.events_pending():
    gtk.main_iteration()

在做更多工作之前更新GUI。

但是,如果我的重工作方法(也更新GUI)放在他们自己的.py文件/类中,我该如何做呢?

以下是我的例子:

这是我想放在回调类之外的方法:

#Some work before here

for root, subdirs, files in os.walk(directoryname, True):
    for fileName in files:
        totalFileCount = totalFileCount + 1

self.textBuffer.insert(self.textBuffer.get_end_iter(),
                       "Number of files and subdirs found for "
                       + directoryname + ": "
                       + str(totalFileCount) + "\n")
self.textViewDetail.scroll_to_iter(self.textBuffer.get_end_iter(),
                                   0,
                                   False,
                                   0,
                                   0)
self.walkProgress = progressbar.progressBar(0, totalFileCount)

while gtk.events_pending():
    gtk.main_iteration()

#some more work after here

我认为,这与我对类的工作原理的理解是脱节的,而且我对文档的阅读并没有让我更进一步。

感谢。

1 个答案:

答案 0 :(得分:0)