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ウィンドウオブジェクトに問題はありません。

現在、ubuntu 10.04でpython 2.6.5、gtk 2.21.1、pygtk 2.17.0を実行しています。一般に、このダイアログは不安定なようです。また、スクリプト内で特定の方法を実行したときにウィンドウが破壊されないという問題もありました。どんな助けでも大歓迎です!

4

1 に答える 1

0

これをIDLEで実行すると、次の手順が実行されます。

  1. スクリプトが開始され、ファイルチューザーがロードされます
  2. インタープリターは待機中にロックしますFileChooserDialog.run()
  3. クリックして削除すると、インタープリターが再開します

これはあなたが説明しているようなものではないので、私はそれがいくつかの難解で奇妙なエラーであると推測することしかできません。

私は少し古いシステム(およびまったく異なるディストリビューション)を使用しているので、次のコマンドを実行します。

  • Python 2.6.4
  • PyGTK 2.16.0
  • GTK 2.18.7

正確さのために(誰が知っているとしても、必ずしも問題に対処する必要はありません...) 、ダイアログを呼び出した.destroy()後、ダイアログを呼び出すことを忘れない.run()でください。

于 2010-11-05T21:15:53.437 に答える