Estoy escribiendo una aplicación de Python basada en pestañas y no quiero que tenga ningún cuadro de diálogo emergente adicional.
Me gustaría usar el Gtk.AboutDialog
funcionalidad, pero no quiero que aparezca como una ventana separada. Más bien, me gustaría que estuviera incrustado en una de las pestañas de mi Gtk.Notebook
(que he creado con Glade).
No pude encontrar ninguna manera obvia de hacer esto. ¿Alguien tiene algún consejo?
Respuesta aceptada:
Puede mover área de contenido (GtkVBox
) de GtkDialog
a otro GtkContainer
y luego agregar a GtkNotebook
– utilizando gtk.Widget.reparent() método.
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 ()
Con la interfaz creada en Glade, debe hacer un truco simple para esta solución. Cree la pestaña "Acerca de" en el cuaderno con GtkBox
adjunto (con id por ejemplo “about_box”). Entonces puedes hacer algo como esto:
box = builder.get_object ("about_box")
about.vbox.reparent (box)
En algunas razones, GtkAboutDialog
de Glade área de contenido contiene también GtkButtonBox
. Si no necesita estos botones, simplemente destrúyalos:
about.action_area.destroy()
Si solo desea el botón "Créditos", sin el botón "Cerrar", haga algo como esto:
close_button = about.get_widget_for_response(Gtk.ResponseType.CANCEL)
close_button.destroy()