我是GTK的新手。我一直在尋找我的問題的答案,但我沒有找到任何東西。關鍵是我想用GTK FileChooser來選擇一個文件。我一直期待在這裏提供的例子:Python中的Gtk filechooser示例掛在Debian上
http://pygtk.org/pygtk2tutorial/examples/filechooser.py
然後我用我的例子已經學會了這個功能添加到我的程序知識。但是,我注意到當我選擇一個文件時,窗口掛起。通過這個我的意思是選擇一個文件的窗口永遠不會消失,直到我關閉整個程序。
所以我回到了這個例子,只是等了一段時間,看看窗口是否被破壞了。事實上,它沒有。只有程序結束時,選擇文件的窗口才會消失。這裏是代碼:
#!/usr/bin/env python
# example filechooser.py
import pygtk
pygtk.require('2.0')
import gtk
import time
# Check for new pygtk: this is new class in PyGtk 2.4
if gtk.pygtk_version < (2,3,90):
print "PyGtk 2.3.90 or later required for this example"
raise SystemExit
dialog = gtk.FileChooserDialog("Open..",
None,
gtk.FILE_CHOOSER_ACTION_OPEN,
(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
gtk.STOCK_OPEN, gtk.RESPONSE_OK))
dialog.set_default_response(gtk.RESPONSE_OK)
filter = gtk.FileFilter()
filter.set_name("All files")
filter.add_pattern("*")
dialog.add_filter(filter)
filter = gtk.FileFilter()
filter.set_name("Images")
filter.add_mime_type("image/png")
filter.add_mime_type("image/jpeg")
filter.add_mime_type("image/gif")
filter.add_pattern("*.png")
filter.add_pattern("*.jpg")
filter.add_pattern("*.gif")
filter.add_pattern("*.tif")
filter.add_pattern("*.xpm")
dialog.add_filter(filter)
response = dialog.run()
if response == gtk.RESPONSE_OK:
print dialog.get_filename(), 'selected'
elif response == gtk.RESPONSE_CANCEL:
print 'Closed, no files selected'
dialog.destroy()
time.sleep(3)
而在那3秒窗口在那裏,所以我想這是從未銷燬,我不知道爲什麼。即使我等待10秒鐘,窗口也不會消失,直到程序結束。我需要知道這個例子有什麼問題或者我做錯了什麼,因爲這不是我想要在我的程序中發生的事情。
以防萬一,我使用Python 2.7.3和Debian 7
提前謝謝!