当我在Glade中创建GtkFileChooserDialog
然后使用Gtk.Builder
将其连接到Python类时,如何告诉它哪个是默认按钮?
目前,我的“打开”按钮是库存gtk-open
按钮,当它被点击时,run()
返回0.但是双击文件或选择文件并按Enter键不会任何东西。据我所知,这是因为对话框不知道Glade中的默认按钮是什么,可能是因为“打开”按钮没有使用GTK_RESPONSE_ACCEPT
,GTK_RESPONSE_OK
,{ {1}}或GTK_RESPONSE_YES
作为其响应代码;但是当通过Glade创建按钮时,如何将响应代码设置为其中之一?
我正在使用Gtk 3,Python 3和PyGObject(即GTK_RESPONSE_APPLY
)。
编辑:以下是Glade文件的相关位:
gi.repository
答案 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)
在运行()对话框之后恢复操作非常重要,因此发出此信号并且不再执行任何操作