Python é rotina semanal em meus trabalhos, seja para prototipar algo ou um projeto, mas as vezes precisamos interfacear a aplicação, no caso uma GUI (Graphic User Interface), assim como o Qt5 fornece todo o framework para uma aplicação gráfica multiplataforma, temos outros como GTK, wxWidgets, tcl/tk entre outras.
O PySide é um wrapper do Python ao Qt, ainda na versão 4.8, porém, a documentação é bem mais objetiva por abordar as ligações em Python e não em C++ como em PyQt.
A aplicação desenvolvida pode ser executar tanto em Linux, Windows, Mac e até mesmo no Android. Agora vamos ver o que precisamos para preparar o ambiente Linux.
Construindo e Instalando o PySide
Primeiro, vamos instalar algumas dependências.
$ sudo apt-get update $ sudo apt-get install build-essential git cmake libqt4-dev libphonon-dev python2.7-dev $ sudo apt-get install libxml2-dev libxslt1-dev qtmobility-dev libqtwebkit-dev
Instalando a versão mais recente do pip:
$ wget https://bootstrap.pypa.io/get-ip.py $ sudo python2.7 get-ip.py
Instalando a versão mais recente do wheel:
$ sudo pip2.7 install wheel
Baixando a versão mais recente do PySide, na data que escrevo este post é a 1.2.4:
$ wget https://pypi.python.org/packages/source/P/PySide/PySide-1.2.4.tar.gz
Extraindo e construindo:
$ tar -xvzf PySide-1.2.4.tar.gz
Construindo PySide:
$ cd PySide-1.2.4 $ python2.7 setup.py bdist_wheel --qmake=/usr/bin/qmake-qt4 ... running install_egg_info Copying pyside_package/PySide.egg-info to build/bdist.linux-x86_64/wheel/PySide-1.2.4.egg-info running install_scripts creating build/bdist.linux-x86_64/wheel/PySide-1.2.4.data creating build/bdist.linux-x86_64/wheel/PySide-1.2.4.data/scripts copying build/scripts-2.7/pyside_postinstall.py -> build/bdist.linux-x86_64/wheel/PySide-1.2.4.data/scripts changing mode of build/bdist.linux-x86_64/wheel/PySide-1.2.4.data/scripts/pyside_postinstall.py to 755 creating build/bdist.linux-x86_64/wheel/PySide-1.2.4.dist-info/WHEEL
Instalando PySide em um ambiente Python virtual isolado, instalando o virtualenv:
$ sudo pip2.7 install virtualenv
Criando o ambiente:
$ virtualenv-2.7 env_pyside New python executable in env_pyside/bin/python2.7 Also creating executable in env_pyside/bin/python Installing setuptools, pip, wheel...done.
Acessando o ambiente e instalando o PySide:
$ cd env_pyside $ source bin/activate (env_pyside) $ pip2.7 install ../PySide-1.2.4/dist/PySide-1.2.4-cp27-none-linux_x86_64.whl Processing /home/bueno/PySide-1.2.4/dist/PySide-1.2.4-cp27-none-linux_x86_64.whl Installing collected packages: PySide Successfully installed PySide-1.2.4
Primeira aplicação
Verificando a instalação, caso algum erro seja retornado o PySide não foi instalado com sucesso ou alguma dependência quebrada.
(env_pyside)$ python2.7 -c 'import PySide; print dir(PySide); print PySide.__version__' ['QtCore', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', '__version__', '__version_info__', '_setupQtDirectories', '_utils'] 1.2.4
No caso acima instalamos a ferramenta com sucesso, onde listo os métodos e atributos e imprimo a versão do PySide instalado.
Criando uma aplicação simples, um janela de 300×300 com um Qlabel centralizado escrito Olá Mundo!.
#! /usr/bin/env python # -*- coding: utf-8 -*- import sys from PySide import QtGui from PySide import QtCore app = QtGui.QApplication(sys.argv) # Criando Janela 300x300 e setando o titulo wid = QtGui.QWidget() wid.resize(300, 300) wid.setWindowTitle('PySide - Blog Cleiton Bueno') # Criando o Label centralizando label = QtGui.QLabel(unicode("Olá Mundo!",'utf-8')) label.setAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignVCenter) # Criando um Layout Horizontal e adicionando nosso Label hbox = QtGui.QHBoxLayout() hbox.addWidget(label) # Adicionando o Layout Horizontal no nosso Widget wid.setLayout(hbox) # Exibindo a Janela wid.show() sys.exit(app.exec_())
Executando nossa aplicação:
(env_pyside) $ python hello_world.py
Dessa maneira temos o melhor dos dois mundos Python e Qt para criar aplicações com interface gráfica, e agora será mais um assunto que será abordado no blog ;).
Espero que tenham gostado, até a próxima!
Referências
http://pyside.readthedocs.org/en/latest/building/linux.html
Python – Conhecendo o PySide by Cleiton Bueno is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.