如何在GtkNotebook小部件中嵌入GtkAboutDialog的内容
我正在编写一个基于选项卡的Python应用程序,我不希望它有任何其他弹出对话框。
我想使用Gtk.AboutDialog
function,但我不希望它显示为单独的窗口。 相反,我希望它嵌入我的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()