如何在GTK文件选择器对话框中解决此错误

use*_*611 2 python gtk filechooser

我有一个按钮,可以打开一个filechooser.但是,我收到了这个错误:

(gui.py:9127):GTK的CRITICAL**:gtk_widget_grab_default:断言`gtk_widget_get_can_default(插件)"失败

(gui.py:9127):Gtk-CRITICAL**:_gtk_file_chooser_embed_initial_focus:断言`GTK_IS_FILE_CHOOSER_EMBED(chooser_embed)'失败

这是我的代码:

from gi.repository import Gtk

def clicked(widget):
    response = filechooser.run()
    if response == Gtk.ResponseType.OK:
        print 'ok'
    else:
        print 'cancel'
        filechooser.destroy()

builder = Gtk.Builder()
builder.add_from_file('gui.glade')
filechooser = builder.get_object('filechooser1')
builder.get_object('button1').connect('clicked', clicked)
builder.get_object('window1').show_all()
Gtk.main()
Run Code Online (Sandbox Code Playgroud)

你知道为什么会这样吗?

还有一个问题:我有一个文件选择器按钮.(None)如果我已经设置路径,如何使此按钮不更改我单击取消时的路径?

use*_*611 6

好的,我知道了.要解决(gui.py:9127): Gtk-CRITICAL **: gtk_widget_grab_default: assertion 'gtk_widget_get_can_default (widget)' failed,你应该can defaultCommon Properties你的filechooser按钮更改为Yes.

要解决(gui.py:9127): Gtk-CRITICAL **: _gtk_file_chooser_embed_initial_focus: assertion 'GTK_IS_FILE_CHOOSER_EMBED (chooser_embed)' failed,你应该filechooser.destroy()改为filechooser.hide()