1

我正在尝试使用 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 窗口对象没有问题。

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

4

1 回答 1

0

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

  1. 脚本启动并加载文件选择器
  2. 解释器在等待时锁定FileChooserDialog.run()
  3. 当我点击删除它时,解释器恢复

这与您所描述的完全不同,所以我只能假设这是一些深奥的,奇怪的错误。

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

  • Python 2.6.4
  • PyGTK 2.16.0
  • GTK 2.18.7

只是为了正确(不一定处理问题,虽然谁知道......)记得.destroy()在你调用它后调用对话框.run()。P

于 2010-11-05T21:15:53.437 回答