O glade pode ser usado com a introspecção Python pygi?

5

Uma vez eu comecei um tutorial do PyGtk and Glade mas nunca terminei. Recentemente, vi que o PyGtk está sendo depreciado em favor do uso de introspecção no link e link . Eu decidi tentar aprender mais sobre python e Gtk novamente usando o novo caminho. As páginas que eu criei parecem mostrar como você faria se eu quisesse fazer a GUI no código, mas eu gosto de usar o Glade. Existe uma maneira de fazer isso e ainda usar a nova introspecção?

    
por Azendale 19.05.2011 / 07:08

2 respostas

7

Sim, na verdade, é quase exatamente o mesmo:

from gi.repository import Gtk

class Test (object):

    def __init__(self):
        self.builder = Gtk.Builder()
        self.builder.add_from_file("test.glade")
        self.builder.connect_signals(self)

    def run(self, *args):
        self.builder.get_object("window1").show()
        Gtk.main()

    def quit(self, *args):
        Gtk.main_quit()


Test().run()

Muitos programas menores terão pouco esforço para converter. Você pode começar mudando para a introspecção usando as duas linhas a seguir e, em seguida, corrigir quaisquer erros, procurando-os na referência.

from gi.repository import Gtk as gtk
from gi.repository import Gobject as gobject

Por exemplo, gtk.RESPONSE_OK será chamado Gtk.ResponseType.OK quando você estiver usando introspecção.

    
por Stefano Palazzo 06.06.2011 / 08:30
2

Tenha em mente que você precisa do Glade 3.10 ou mais recente para construir uma interface do GTK 3. 3.8 ou mais antigo é para o GTK 2. No Ubuntu, os pacotes são chamados glade e glade-gtk2 .

Se você precisar converter um (antigo) aplicativo PyGTK em PyGI, tente o script pygi-convert que vem com o tarball PyGObject. Em muitos casos, isso deve ser suficiente para transformar seu aplicativo. Ele também é encontrado no GIT: link

O link a seguir deve ajudar também com algumas explicações básicas sobre as coisas comuns que mudaram: link

E finalmente, aqui está um esforço (muito bom) para criar um tutorial do PyGI: link

Acho útil dar uma olhada nos documentos em C ao criar algo: link Uma vez que você saiba como tudo é feito em Python, isso pode ser um recurso muito bom para coisas que ainda não foram documentadas. Vamos dar uma olhada no exemplo do gtk.RESPONSE_OK dado na outra resposta. Ao acessar os documentos em C, você encontrará: link Pegue o nome do enum (GtkResponseType) e divida a parte 'Gtk' por um ponto e adicione o tipo enum sem a parte GTK_ *, assim você obterá: Gtk.ResponseType.OK Isso funciona com todas as enums que encontrei.

    
por Timo 13.12.2011 / 23:45