pygtk FileChooserDialog减慢了解释器的速度

时间:2010-10-26 04:41:27

标签: python pygtk ipython

我正在尝试使用FileChooserDialog在python脚本中获取本机gnome对话框。脚本执行后,我的ipython -pylab提示会出现明显的减速。从普通的python提示符也存在此问题。我已将问题隔离到对话框中。以下示例(已作为pygtk示例在其他位置发布)说明了此问题:

import pygtk
pygtk.require('2.0')
import gtk
class FileChooserDialog:
    def __init__(self):
        filechooserdialog = gtk.FileChooserDialog("FileChooserDialog Example", None, gtk.FILE_CHOOSER_ACTION_OPEN, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OK, gtk.RESPONSE_OK))        
        response = filechooserdialog.run()
        if response == gtk.RESPONSE_OK:
            print "Selected filepath: %s" % filechooserdialog.get_filename()
        filechooserdialog.destroy()
if __name__ == "__main__":
    FileChooserDialog()

运行脚本后,从键盘输入任何键后,我的硬盘驱动器指示灯似乎闪烁 - 非常奇怪的行为!我不赞成已弃用的gtk.FileSelection或任何其他gtk窗口对象。

我目前正在ubuntu 10.04中运行python 2.6.5,gtk 2.21.1,pygtk 2.17.0。一般来说,这个对话似乎很脆弱;在脚本中执行某些方法时,我也遇到了一些窗口没有破坏的问题。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

从IDLE中运行这个,这是我可以看到的步骤 -

  1. 脚本启动,文件选择器加载
  2. 解释器在等待FileChooserDialog.run()
  3. 时锁定
  4. 当我点击删除时,解释器会恢复
  5. 这与你所描述的不同,所以我只能假设它是一些深奥的,奇怪的错误。

    我在一个较旧的系统(和一个完全不同的发行版),所以我运行:

    • Python 2.6.4
    • PyGTK 2.16.0
    • GTK 2.18.7

    只是为了正确(不是必须处理问题,尽管谁知道......)在你打电话给.destroy()之后,记得给对话框打电话.run()。 p