Python – Conhecendo o PySide

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

HelloWorld_PySide_cleitonbueno.com

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 

Share Button

CC BY-NC-SA 4.0 Python – Conhecendo o PySide by Cleiton Bueno is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.