如何访问Gtk.对话框?



我得到一个错误(Gtk-WARNING **: 18:33:56.632: Attempting to add a widget with type GtkBox to a GtkDialog, but as a GtkBin subclass a GtkDialog can only contain one widget at a time; it already contains a widget of type GtkBox)执行这段代码时:

def switchfile(self, widget):
self.cd = None
self.cd = {
'win'   : Gtk.Dialog(),
'entry' : Gtk.Entry(),
'btnok' : Gtk.Button.new_from_icon_name("document-open-symbolic", Gtk.IconSize.MENU),
'label' : Gtk.Label(),
'vbox'  : Gtk.Box(orientation=Gtk.Orientation.VERTICAL),
'hbox'  : Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL)
}
self.cd['entry'].set_placeholder_text('Notebook Name')
self.cd['btnok'].connect('clicked', self.switch_yes)
self.cd['hbox'].pack_start(self.cd['entry'], True, True, 0)
self.cd['hbox'].pack_start(self.cd['btnok'], True, True, 0)
self.cd['vbox'].pack_start(self.cd['label'], True, True, 0)
self.cd['vbox'].pack_start(self.cd['hbox'], True, True, 0)
self.cd['vbox'].show_all()

self.cd['win'].add(self.cd['vbox'])
self.cd['win'].show_all()
self.cd['win'].run()

但是,如果Gtk.Dialog中已经有一个Gtk.Box,我如何访问它?在Stackoverflow的另一个问题中,有一个Dialog.get_vbox()函数,但它是C/c++,当我使用bpython3列出Gtk中的函数时。对话框,它没有任何东西,没有get_vbox(),也没有其他东西像get_vbox:没有get_box()' and noget_container() '。

如何访问Gtk.Dialog中的Gtk.Box

信息:我使用gi.repository.Gtk3.0版本

现在我知道怎么做了。

def switchfile(self, widget):
self.cd = None
self.cd = {
'win'   : Gtk.Dialog(),
'entry' : Gtk.Entry(),
'btnok' : Gtk.Button.new_from_icon_name("document-open-symbolic", Gtk.IconSize.MENU),
'label' : Gtk.Label(),
'vbox'  : None,
'hbox'  : Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL)
}
self.cd['win'].add_buttons(
Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
Gtk.STOCK_OK, Gtk.ResponseType.OK
)
self.cd['vbox'] = self.cd['win'].get_content_area()
self.cd['entry'].set_placeholder_text('Notebook Name')
self.cd['btnok'].connect('clicked', self.switch_yes)
self.cd['hbox'].pack_start(self.cd['entry'], True, True, 0)
self.cd['hbox'].pack_start(self.cd['btnok'], True, True, 0)
self.cd['vbox'].pack_start(self.cd['label'], True, True, 0)
self.cd['vbox'].pack_start(self.cd['hbox'], True, True, 0)
self.cd['vbox'].show_all()
self.cd['win'].show_all()
self.cd['win'].run()

重要的是这一行:

self.cd['vbox'] = self.cd['win'].get_content_area()

我不知道这个函数,但这是如何访问Gtk。框。对话框对象。

相关内容

  • 没有找到相关文章

最新更新