Saltar para o conteúdo

PyQt

Origem: Wikipédia, a enciclopédia livre.

PyQt é um empacotador da linguagem Python para a biblioteca Qt, que é a base do KDE (ambiente desktop para Linux). Existe uma biblioteca complementar, PyKDE, que atua sobre elementos específicos do KDE, como por exemplo interação com o kicker e a barra de tarefas. Suporta as plataformas Unix, Linux, Windows, Mac OS/X.

Segue de perto o sistema do Qt, que é GPL para programas sem fins comerciais nas plataformas UNIX/X11 (incluindo Linux), Windows e Mac OS X. Para os dois últimos, a licença GPL foi disponibilizada apenas a partir da versão 4.x. Para outros usos (código fechado, comercial, etc) há licenças alternativas de modo bem semelhante às licenças do próprio Qt para esses casos.

Características

[editar | editar código-fonte]
  • Desempenho: Como o Qt foi construído de forma a facilitar o desenvolvimento de wrappers, o desempenho do PyQt é bem próximo do Qt quando usado com C++.
  • Fácil de aprender: A biblioteca Qt é famosa por ser extremamente bem documentada, pois a própria Trolltech possui um time de escritores técnicos. Apesar da documentação ser para C++, é fácil "traduzir" os exemplos para Python. Existe também um ótimo livro online sobre PyQt no site opendocs.org
  • IDE: Possui uma IDE muito boa para criação de interfaces, chamada QT Designer. O programa pyuic transforma essas definições de interfaces em código Python, que pode então ser usado por outros programas.

Exemplo de código

[editar | editar código-fonte]
import sys
from qt import *

class HelloButton(QPushButton):

    def __init__(self, *args):
        QPushButton.__init__(self, *args)
        self.setText("Hello World")

class HelloWindow(QMainWindow):

    def __init__(self, *args):
        QMainWindow.__init__(self, *args)
        self.button=HelloButton(self)
        self.setCentralWidget(self.button)

def main(args):
    app=QApplication(args)
    win=HelloWindow()
    win.show()
    app.connect(app, SIGNAL("lastWindowClosed()"),
                app, SLOT("quit()"))
    app.exec_loop()

if __name__=="__main__":
    main(sys.argv)

Ligações externas

[editar | editar código-fonte]