PyQT
Origem: Wikipédia, a enciclopédia livre.
PyQT é um wrapper da linguagem Python para a biblioteca Qt, que é a base do KDE (ambiente desktop para Linux). Muitas das vantagens e desvantagens do PyQT coincidem com as do PyGTK, pelo fato do GNOME e KDE serem "concorrentes" e se equivalerem em muitos aspectos. 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.
Índice |
[editar] Licença
Segue de perto o sistema do Qt, que é GPL para programas sem fins comerciais nas plataformas UNIX/X11 (Linux etc). Para Windows, apenas uma licença comercial está disponível no momento. (Obs.: a partir da versão 4, a licença GPL também está disponível para Windows.)
[editar] Plataformas
Unix, Linux, Windows, Mac OS/X
[editar] Vantagens
- 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
- API: A API do PyQT utiliza um sistema de "slots" e "sinais", levemente similar ao sistema de sinais e callbacks utilizado por outras bibliotecas. A API é bastante rica e coerente.
- 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.
[editar] Desvantagens
- Portabilidade: Usar o PyQT é excelente para programas Linux (em especial para rodar em cima do KDE, embora isso não seja obrigatório), mas como não existe licença GPL para Windows, provavelmente não é uma boa idéia utilizá-lo nessa plataforma. No ambiente Windows existem DLLs disponíveis para download da Qt 2.x para fins não comerciais, sobre as quais se encontra disponível também o PyQt para Windows. DLLs para fins não comerciais da Qt 3.x somente se encontram disponíveis no livro C++ GUI Programming with Qt 3.
[editar] Exemplo de código
import sys from qt import * class HelloButton(QPushButton): def __init__(self, *args): apply(QPushButton.__init__, (self,) + args) self.setText("Hello World") class HelloWindow(QMainWindow): def __init__(self, *args): apply(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)