【发布时间】:2014-11-17 00:56:57
【问题描述】:
我不知道为什么我的程序会挂起,我已经阅读了几个关于此的主题。
结果是当我点击Config_Window_Button1时,我的Config_Window会冻结一会儿,time.sleep()要求的时间。
然后出现 Network_Window 但 GObject.idle_add() 似乎只运行了一次(分数调整为 0.25);我在该进度条中看不到任何动作,而有趣的是print("def pulse running") 定期运行。
所以:
1) 为什么 Config_Window 会冻结 S 秒,而 time.sleep(S) 是在 GObject.idle_add() 之后?
2) 为什么我的 GUI 没有更新?
GObject.threads_init()
builder = Gtk.Builder()
builder.add_from_file('UI2.glade')
builder.get_object('Config_Window').show()
progressbar = builder.get_object('Progressbar1')
progressbar.set_inverted(True)
fraction = 0.0
builder.get_object('Config_Window_Button1').connect('clicked', collega_GUI)
def collega_GUI(widget, args=()):
builder.get_object('boxNetwork').show_all()
builder.get_object('Network_Window').show()
progressbar.set_pulse_step(0.25)
pulse()
print 'collega_GUI has ended'
def pulse():
while True:
GObject.idle_add(progressbar.pulse)
time.sleep(1)
print 'def pulse running'
【问题讨论】:
标签: python multithreading pygtk gobject