nja*_*lam 5 quickly pygtk application-development
我已经添加了监听器等,但我无法让实际的打开对话框代码工作。我认为这与 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)
Run Code Online (Sandbox Code Playgroud)
当按钮被按下时,控制台输出:
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
Run Code Online (Sandbox Code Playgroud)
此外,当GTK_FILE_CHOOSER_ACTION_OPEN被替换为“0”(我相信这int是常数指向的)时,它可以正常工作,但它会在Gtk.RESPONSE_CANCEL和Gtk.RESPONSE_OK
小智 2
您必须更换:
GTK_FILE_CHOOSER_ACTION_OPEN和Gtk.FileChooserAction.OPENGtk.RESPONSE_CANCEL和Gtk.ResponseType.CANCELGtk.RESPONSE_OK和Gtk.ResponseType.OKETC。
这不是 PyGTK,而是 GObject Introspection。您必须按如下方式构建名称:Gtk.EnumTypeNameHere.VALUE
请参阅https://live.gnome.org/PyGObject/IntrospectionPorting