Como incorporar o conteúdo de um GtkAboutDialog em um widget do GtkNotebook

7

Estou escrevendo um aplicativo Python baseado em guias, e não quero que ele tenha caixas de diálogo pop-up adicionais.

Gostaria de usar a funcionalidade Gtk.AboutDialog , mas não quero que ela apareça como uma janela separada. Em vez disso, eu gostaria que fosse incorporado em uma das abas do meu Gtk.Notebook (que eu criei com o Glade).

Eu não encontrei nenhuma maneira óbvia de fazer isso. Alguém tem alguma indicação?

    
por David Planella 15.05.2012 / 02:00

1 resposta

6

Você pode mover a área de conteúdo ( GtkVBox ) de GtkDialog para outra GtkContainer e, em seguida, anexar a GtkNotebook - usando 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 ()

Com interface criada no Glade, você deve fazer um truque simples para esta solução. Crie o separador "About" no bloco de notas com GtkBox anexado (com id por exemplo "about_box"). Então você pode fazer algo assim:

box = builder.get_object ("about_box")
about.vbox.reparent (box)

Em alguns motivos, a área de conteúdo GtkAboutDialog do Glade também contém GtkButtonBox . Se você não precisa desses botões, simplesmente os destrua:

about.action_area.destroy()

Se você quiser apenas o botão "Créditos", sem o botão "Fechar", faça algo assim:

close_button = about.get_widget_for_response(Gtk.ResponseType.CANCEL)
close_button.destroy()
    
por Damian 16.05.2012 / 01:11