我正在编写一个基于选项卡的 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()