Píši aplikaci Python, která je založena na kartách, a nechci, aby měla další vyskakovací dialogy.
Chtěl bych použít Gtk.AboutDialog funkce, ale nechci, aby se zobrazovala jako samostatné okno. Spíše bych chtěl, aby to bylo vložené na jednu z karet mého Gtk.Notebook (který jsem vytvořil s Glade).
Nenašel jsem žádný zřejmý způsob, jak to udělat. Má někdo nějaké tipy?
Přijatá odpověď:
Můžete přesunout oblast obsahu (GtkVBox ) z GtkDialog do jiného GtkContainer a poté připojte k GtkNotebook – pomocí gtk.Widget.reparent() metoda.
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 ()
S rozhraním vytvořeným v Glade musíte pro toto řešení udělat jednoduchý trik. Vytvořte kartu „O aplikaci“ v poznámkovém bloku s připojeným GtkBox (s ID například „about_box“). Pak můžete udělat něco takového:
box = builder.get_object ("about_box")
about.vbox.reparent (box)
Z některých důvodů Glade's GtkAboutDialog oblast obsahu obsahuje také GtkButtonBox . Pokud tato tlačítka nepotřebujete, jednoduše je zničte:
about.action_area.destroy()
Pokud chcete pouze tlačítko „Kredity“ bez tlačítka „Zavřít“, udělejte něco takového:
close_button = about.get_widget_for_response(Gtk.ResponseType.CANCEL)
close_button.destroy()