Python 在单独进程中运行循环时,继续向gtkliststore添加行
其思想是继续对列表进行迭代,将其项添加到gtklist存储, 我使用:Python 在单独进程中运行循环时,继续向gtkliststore添加行,python,listview,pygtk,Python,Listview,Pygtk,其思想是继续对列表进行迭代,将其项添加到gtklist存储, 我使用: multiprocess.Process在分离流流程中添加行 gtk.gdk.threads\u enter(),在调用main方法和进程之前 错误描述是:尽管循环在后台运行良好,但没有向liststore添加任何行 有人能提出或指出解决方案吗 这里是init方法,循环方法(名为list\u updater) 以下是我在原始代码中用来解决此问题的项目: 多线程不同于多处理,我已转向线程处理 gtk.gdk.threads_
multiprocess.Process
在分离流流程中添加行gtk.gdk.threads\u enter()
,在调用main方法和进程之前以下是我在原始代码中用来解决此问题的项目: 多线程不同于多处理,我已转向线程处理 gtk.gdk.threads_init(),gtk.gdk.thread.enter(),然后调用主循环gtk.gdk.thread.leave()
'class sample():
def __init__(self , testmode ):
self.builder = gtk.Builder()
self.builder.add_from_file('test.glade')
self.list_store = self.builder .get_object('liststore1')
self.win = self.builder.get_object('window1')
self.win.set_default_size(200 , 400)
self.win.show()
self.list_ = [0,31,2,5,4,61,8,20,10]
gtk.gdk.threads_enter()
tar = self.list_updater
arg = ()
t = Process(target = tar , args = arg )
t.start()
gtk.gdk.threads_leave()
def list_updater(self ):
while True :
for item in self.list_ :
item = [item]
print item
self.list_store.prepend(item)
time.sleep(1)
import threading # instead of multiprocessing
gtk.gdk.threads_enter()
tar = self.list_updater
arg = ()
t = threading.Thread(target = tar , args = arg )
t.start()
gtk.gdk.threads_leave()
def main():
gtk.gdk.threads_init()
gtk.gdk.threads_enter()
gtk.main()
gtk.gdk.threads_leave()