Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从回调类外部向GUI传递更新_Python_Gtk_Python 2.7 - Fatal编程技术网

Python 从回调类外部向GUI传递更新

Python 从回调类外部向GUI传递更新,python,gtk,python-2.7,Python,Gtk,Python 2.7,这是一个概念性的问题 我正在学习Python。我构建了一个GUI和一个回调类来处理事件。我想让回调类只处理事件,并在另一个.py文件中调用方法,所有繁重的工作都在这个文件中完成 但是,我的GUI中有一个进度条和一个详细窗口,其中显示了进程正在进行的所有工作 如果回调类中有所有繁重的工作方法,我可以轻松地更新进度栏和详细信息窗口,然后调用: while gtk.events_pending(): gtk.main_iteration() 在执行更多工作之前更新GUI 但是,如果我的繁重的

这是一个概念性的问题

我正在学习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
我认为,这是我对类如何工作的理解上的一个脱节,我对文档的阅读并没有让我走得更远

谢谢。

试试这个技巧: