PyQt 01 – O Primeiro Programa
- PyQt 01 – O Primeiro Programa
- PyQt 02 – Criando uma caixa de mensagem
- PyQt 03 – Diálogos com QMessageBox
- PyQt 04 – Diálogos com QInputDialog
- PyQt 05 – Diálogo QFileDialog
- PyQt 06 – Mais diálogos
- PyQt 07 – QLabel e Qt Designer
- PyQt 08 – QLineEdit e mais Qt Designer
- PyQt 09 – QPushButton, apertando os botões
- PyQt 10 – QCheckBox e QRadioButton: checando as opções
- PyQt 11 – QButtonGroup e QGroupBox: mais opções
- PyQt 12 – QComboBox
- PyQt 13 – QSpinBox, QProgressBar e + sinais
- PyQt 14 – QNetwork, baixando arquivos
Este texto será o primeiro de uma série de tutoriais em PyQt4, apresentados de forma simples. O objetivo é registrar estes conhecimentos em um lugar comum e com isto, capacitar o leitor a utilizá-los na construção de diálogos, GUIs ou mesmo aplicativos em PyQt4.
Não é interesse deste texto, e dos seguintes, ensinar programação em Python. Bem ao contrário, vou supor que o leitor conheça bem o Python 2.4, 2.5 ou outra versão que se tornar ativa ao longo da escrita destes textos, com conhecimentos em orientação a objetos, funções, tipos avançados, …, ou seja, conheça o Python.
Para aqueles que pretendam conhecer o Python, aconselho a leitura dos materiais a seguir:
- Aprenda a programar, por Luciano Ramalho – texto para iniciantes em programação (livre);
- Python na Prática, por Christian Robottom Reis da Async Open Source (livre);
- Python Docs, diversos documentos, alguns do próprio criador da linguagem, Guido van Rossum. Podem ser baixados do site do Python
Primeiro programa em PyQt4
O primeiro programa será um simples “Hello World”, para não fugir a regra. O código é apresentado no quadro a seguir:
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
#
# Simples Hello World em PyQt4
#
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
# cria o objeto aplicativo
app = QApplication(sys.argv)
# cria um label
label = QLabel("Hello World")
# coloca o label no dialog
label.setWindowFlags(Qt.SplashScreen)
# apresenta o label
label.show()
# agenda a execução de um app.quit() em 10 segundos
QTimer.singleShot(10000, app.quit)
# inicia o aplicativo
app.exec_()
As linhas 7 e 8 carregam os módulos necessários para criar qualquer interface gráfica e qualquer aplicativo gráfico, com os botões, comboBox, listas, diálogos pré-definidos, entre muitos outros elementos gráficos, além de acesso a bancos de dados, network e muito mais.
A biblioteca Qt é muito extensa para ser apresentada em um texto, nem tenho esta pretensão. Para referência, é aconselhável ter uma cópia da documentação em www.riverbankcomputing.co.uk/static/Docs/PyQt4
Na linha 11 é criado o objeto app, uma instância da classe QApplication. O sys.argv é usado para passar argumentos de linha de comando para o aplicativo. Não é necessário passar estes argumentos, mas a classe QApplication necessita de um argumento de entrada, que pode ser uma lista vazia “[]”, caso não deseja que o seu aplicativo receba argumentos.
A linha 14 cria o objeto label com a mensagem “Hello World”. Observe que o texto passado como argumento a classe QLabel pode conter código html para a sua formatação. É claro que é possível acessar as propriedades do objeto label, para alterar tamanho, cor, fonte, alinhamento, entre outras propriedades, mas isto ficará para outro momento.
A linha 17 seta a flag Qt.Splashscreen, dizendo que o label será um splash na tela, ou seja, não vai necessitar de uma janela para apresentá-la. Em Qt, qualquer widget pode ser um splash na tela.
Para conhecer todas as flags suportadas pela propriedade setWindowFlags, veja a documentação em WindowFlags. O documento está escrito para C++, mas basta trocar o “::” por um ponto que está lendo um documento para o PyQt.
A linha 20 apresenta o conteúdo de label. A linha 23 coloca na fila de execução, em 10.000ms (10s), um app.quit, para terminar o aplicativo. Isto é necessário apenas para terminar o aplicativo após a execução do aplicativo, na linha 26.
A figura a seguir mostra o resultado da execução do código acima. Sobre a minha tela ele imprime a mensagem “Hello World”.
Conclusão
Isto é apenas uma demostração de um código que serve bem como exemplo da leveza do código PyQt. Partes deste código será aproveitado ao longo dos demais tutoriais. Agora é só aguardar…
Dica
Para dominar mais rapidamente o PyQt, é imprescindível ter acesso à documentação do Qt4 na fonte, em http://doc.qtsoftware.com. Geralmente mantenho uma cópia do conteúdo da última versão destes documentos (atualmente 4.5) para consulta.
Isto pode ser feito com o comando wget, veja a linha abaixo:
wget -m -np http://doc.qtsoftware.com/4.5/
Isto irá criar um diretório doc.qtsoftware.com/4.5/, no diretório em que o comando for executado, com toda a documentação do Qt4.5. Isto pode ser muito útil, principalmente quando não se tem acesso contínuo à internet.
Deixe uma resposta