[英]pygtk hide/destroy doesn't work
我試圖打開一個對話框,並在返回響應后再次將其關閉。 據我了解,.destroy()或.hide()應該從屏幕上刪除窗口。 但是窗口凍結並保持打開狀態。 我究竟做錯了什么?
這是我的代碼:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import gtk
import time
class MyWindow(gtk.Dialog):
def __init__(self, parent=None, filename="Filename.jpg"):
gtk.Dialog.__init__(self, "Window", parent, 0,
(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
gtk.STOCK_OK, gtk.RESPONSE_OK))
self.set_default_size(150, 100)
box = self.get_content_area()
self.usr_label = gtk.Label("User-Name:\t")
self.usr_entry = gtk.Entry()
box.add(self.usr_label)
box.add(self.usr_entry)
self.show_all()
dialog = MyWindow(filename="foobar")
response = dialog.run()
if response != gtk.RESPONSE_OK:
exit()
dialog.hide()
dialog.destroy()
time.sleep(15)
print("foo")
嘗試這個:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import gtk, time;
class MyWindow(gtk.Dialog):
def __init__(self, parent=None, filename="Filename.jpg"):
gtk.Dialog.__init__(self, "Window", parent, 0,
(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
gtk.STOCK_OK, gtk.RESPONSE_OK));
self.connect("destroy", self.quit);
self.connect("response", self.response);
self.set_default_size(150, 100)
box = self.get_content_area()
self.usr_label = gtk.Label("User-Name:\t")
self.usr_entry = gtk.Entry()
box.add(self.usr_label)
box.add(self.usr_entry)
self.show_all();
def response(self, widget = None, data = None):
if data == gtk.RESPONSE_OK:
name = self.usr_entry.get_text();
print("User-Name: " + name);
self.quit();
else:
self.quit()
def main(self): gtk.main();
def quit(self, widget = None): gtk.main_quit();
if __name__ == '__main__': MyWindow().main();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.