如何在GtkNotebook小部件中嵌入GtkAboutDialog的内容

我正在编写一个基于选项卡的Python应用程序,我不希望它有任何其他弹出对话框。

我想使用Gtk.AboutDialogfunction,但我不希望它显示为单独的窗口。 相反,我希望它嵌入我的Gtk.Notebook一个标签中(我用Glade创建)。

我找不到任何明显的方法来做到这一点。 有没有人有任何指针?

您可以将内容区域GtkVBox )从GtkDialog到另一个GtkContainer ,然后使用gtk.Widget.reparent()方法附加到GtkNotebook

 about = Gtk.AboutDialog() about.set_program_name ("Application") about.set_copyright ("Author") box = Gtk.VBox () about.vbox.reparent (box) notebook.append_page (box, Gtk.Label("About")) about.destroy () 

使用Glade创建的界面,您必须为此解决方案做一个简单的技巧。 在笔记本中创建“关于”选项卡,附加GtkBox (例如id为“about_box”)。 然后你可以做这样的事情:

 box = builder.get_object ("about_box") about.vbox.reparent (box) 

由于某些原因,Glade的GtkAboutDialog 内容区域也包含GtkAboutDialog 。 如果您不需要此按钮,只需将其销毁:

 about.action_area.destroy() 

如果您只想要“信用”按钮,而不使用“关闭”按钮,请执行以下操作:

 close_button = about.get_widget_for_response(Gtk.ResponseType.CANCEL) close_button.destroy()