PyGObject GtkFileChooserDialog默认按钮

时间:2017-11-15 15:11:56

标签: python pygtk gtk3 pygobject

当我在Glade中创建GtkFileChooserDialog然后使用Gtk.Builder将其连接到Python类时,如何告诉它哪个是默认按钮?

目前,我的“打开”按钮是库存gtk-open按钮,当它被点击时,run()返回0.但是双击文件或选择文件并按Enter键不会任何东西。据我所知,这是因为对话框不知道Glade中的默认按钮是什么,可能是因为“打开”按钮没有使用GTK_RESPONSE_ACCEPTGTK_RESPONSE_OK,{ {1}}或GTK_RESPONSE_YES作为其响应代码;但是当通过Glade创建按钮时,如何将响应代码设置为其中之一?

我正在使用Gtk 3,Python 3和PyGObject(即GTK_RESPONSE_APPLY)。

编辑:以下是Glade文件的相关位:

gi.repository

2 个答案:

答案 0 :(得分:2)

您可以将响应ID设置为Glade中的按钮。 (常规>响应ID)响应类型为here

GTK_RESPONSE_NONE是-1

GTK_RESPONSE_REJECT为-2

GTK_RESPONSE_ACCEPT为-3

......等等......

GTK_RESPONSE_HELP是-11

答案 1 :(得分:0)

尝试

dialog.set_default_response(Gtk.ResponseType.YES)

无法确定如何更改Glade上的响应代码,但是如果你只为你的`gtk.ResponseType.YES代码编写处理程序那么对你来说无关紧要

编辑:

如果您没有使用像已经连线的林间空地

dialog = builder.get_object("file_chooser")
dialog.connect('file-activated', self.file_selected)

def file_selected(self, dialog):
    dialog.emit('response', Gtk.ResponseType.OK)

在运行()对话框之后恢复操作非常重要,因此发出此信号并且不再执行任何操作