Sto scrivendo un'app Python basata su schede e non voglio che abbia finestre di dialogo pop-up aggiuntive.
Vorrei utilizzare il Gtk.AboutDialog
funzionalità, ma non voglio che appaia come una finestra separata. Piuttosto, vorrei che fosse incorporato in una delle schede del mio Gtk.Notebook
(che ho creato con Glade).
Non riuscivo a trovare un modo ovvio per farlo. Qualcuno ha suggerimenti?
Risposta accettata:
Puoi spostare l'area dei contenuti (GtkVBox
) da GtkDialog
a un altro GtkContainer
, quindi aggiungi a GtkNotebook
– utilizzando gtk.Widget.reparent() metodo.
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 l'interfaccia creata in Glade, devi fare un semplice trucco per questa soluzione. Crea la scheda "Informazioni" nel taccuino con GtkBox
aggiunto (con id ad esempio “about_box”). Quindi puoi fare qualcosa del genere:
box = builder.get_object ("about_box")
about.vbox.reparent (box)
Per alcuni motivi GtkAboutDialog
di Glade area contenuti contiene anche GtkButtonBox
. Se non hai bisogno di questi pulsanti, distruggili semplicemente:
about.action_area.destroy()
Se vuoi solo il pulsante "Crediti", senza il pulsante "Chiudi", fai qualcosa del genere:
close_button = about.get_widget_for_response(Gtk.ResponseType.CANCEL)
close_button.destroy()