我已经添加了监听器等,但我无法让实际的打开对话框代码工作。我认为这与 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
答案1
您必须替换:
GTK_FILE_CHOOSER_ACTION_OPEN
和Gtk.FileChooserAction.OPEN
Gtk.RESPONSE_CANCEL
和Gtk.ResponseType.CANCEL
Gtk.RESPONSE_OK
和Gtk.ResponseType.OK
ETC。
这不是 PyGTK,而是 GObject Introspection。您必须按如下方式构建名称:Gtk.EnumTypeNameHere.VALUE