リスナーなどはすでに追加していますが、実際に開いているダイアログコードを動作させることができません。それは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_CANCEL
とGtk.RESPONSE_OK
で同じエラーが発生します。
交換する必要があります:
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 を参照してください