PyGTK

PyGTK
AutorJames Henstridge[1]
DesenvolvedorPyGTK Core development team[2]
Lançamento estável
2.24.0[3] / 1 abril 2011; há 15 anos
Repositório
Escrito emPython, C
PlataformaCross-platform
TipoWidget toolkit
LicençaLGPL
Websitewww.pygtk.org

PyGTK é um wrapper para o Python criado por James Henstridge, construído sobre o GIMP Toolkit (GTK) a biblioteca usada pelo GNOME e muitas outras aplicações para Linux. Tem ótimo desempenho, elementos ricos e visual agradável.

Vantagens

  • Desempenho - PyGTK 0.X (para GTK 1.2) tem um ótimo desempenho. A versão 2.0 (para gtk 2.X) não tem o mesmo desempenho, mas é bem satisfatória.
  • Documentação - Bem documentada. Existem bons tutoriais para ambas as versões. Apesar de não haver uma referência completa para PyGTK 0.X, existe uma muito boa para a versão 2.X.
  • API - PyGTK usa uma API eficiente, baseada em propagação de sinais e callbacks. Um elemento qualquer emite um sinal, que é propagado "pra cima" até ser capturado e gerar a chamada de um callback.
  • IDE - Possui uma ferramenta para construção de interfaces, o Glade, que permite gerar uma referência em XML da interface, que pode ser usada diretamente pela biblioteca.
  • Portabilidade - Portar aplicações de PyGTK para Windows é fácil. Normalmente sem trocar o código.

Desvantagens

  • Tamanho do código - Muito do código escrito em PyGTK chega a parecer redundante, mas é necessário. Por exemplo, para usar um elemento qualquer precisamos criá-lo, chamando a classe, configurá-lo através dos seus métodos de configuração, posicioná-lo e por fim mostrá-lo com o método show(). São no mínimo três chamadas de métodos para cada objeto. Como resultado disso, temos arquivos de código fonte imensos. Linhas e mais linhas de código são necessárias para se fazer qualquer coisa. Uma alternativa é usar a biblioteca libglade, que especifica a interface através de um arquivo XML gerado pelo editor de interfaces Glade, diminuíndo consideravelmente o tamanho do código final, com a vantagem da implementação da interface não depender da linguagem de programação escolhida.

Exemplo de Código

import gtk

class HelloWorld(gtk.Window):

    def __init__(self):

        gtk.Window.__init__(self)
        self.connect("delete_event", gtk.main_quit)
        self.set_border_width(10)
        self.set_title("Hello World!")

        hbox = gtk.HBox()
        self.add(hbox)

        self.button1 = gtk.Button("Button 1")
        self.button1.connect("clicked", self.button_pressed_cb)
        hbox.pack_start(self.button1)

        self.button2 = gtk.Button("Button 2")
        self.button2.connect("clicked", self.button_pressed_cb)
        hbox.pack_start(self.button2)

    def button_pressed_cb(self, button):

        print "Hello again - %s was pressed" % button.get_label()

if __name__ == "__main__":

    win = HelloWorld()
    win.show_all()
    gtk.main()

Ver também

Referências

  1. «Software I have written > PyGTK - Python bindings for GTK». James Henstridge's Homepage 
  2. «The people behind PyGTK» 
  3. «PyGTK 2.24 release announcement». Consultado em 1 de outubro de 2016. Arquivado do original em 6 de dezembro de 2013 

Ligações externas

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.