web-dev-qa-db-ja.com

クイックのPyGTKでファイルを開く

リスナーなどはすでに追加していますが、実際に開いているダイアログコードを動作させることができません。それはgtkとGtkの違いと関係があると思いますが、私は文字通り昨日pythonを始めました。これが今の私のコードです:

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)

ボタンが押されると、コンソールは次のように出力します。

Traceback (most recent call last):
File "/home/nja/notetaker/notetaker/NotetakerWindow.py", line 61, in on_btn_open_clicked
self.open_file()
File "/home/nja/notetaker/notetaker/NotetakerWindow.py", line 41, in open_file
GTK_FILE_CHOOSER_ACTION_OPEN,
NameError: global name 'GTK_FILE_CHOOSER_ACTION_OPEN' is not defined

また、GTK_FILE_CHOOSER_ACTION_OPENが「0」(定数が指すintであると私は信じています)の代わりに使用すると、正常に機能しますが、Gtk.RESPONSE_CANCELGtk.RESPONSE_OKで同じエラーが発生します。

5
njallam

交換する必要があります:

  • GTK_FILE_CHOOSER_ACTION_OPEN with Gtk.FileChooserAction.OPEN
  • Gtk.RESPONSE_CANCEL with Gtk.ResponseType.CANCEL
  • Gtk.RESPONSE_OK with Gtk.ResponseType.OK

等.

これはPyGTKではなく、GObjectIntrospectionです。次のように名前を作成する必要があります。Gtk.EnumTypeNameHere.VALUE

https://live.gnome.org/PyGObject/IntrospectionPorting を参照してください

2
pappijo