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

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

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

我想使用这个Gtk.AboutDialog功能,但我不想让它显示为一个单独的窗口。相反,我希望它嵌入到我的一个选项卡中Gtk.Notebook(我用 Glade 创建的)。

我找不到任何明显的方法来实现这一点。有人能指点一下吗?

答案1

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

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 内容区域还包含GtkButtonBox。如果您不需要这些按钮,只需销毁它们即可:

about.action_area.destroy()

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

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

相关内容