O que é PyQt5 e para que serve
PyQt5 é um conjunto de wrappers Python para a biblioteca Qt. É uma das ferramentas mais populares para criar interfaces gráficas de usuário multiplataforma. Com PyQt5, desenvolvedores podem criar aplicações desktop profissionais com design moderno e funcionalidades avançadas.
Principais recursos do PyQt5
PyQt5 oferece uma ampla gama de recursos para desenvolvedores:
- Diversos widgets prontos através do módulo QtWidgets
- Suporte para janelas, botões, campos de entrada e listas
- Sistema de sinais e slots para programação orientada a eventos
- Integração com elementos gráficos via QGraphicsView
- Personalização de interfaces com estilos
- Suporte a múltiplos sistemas operacionais
Instalação da biblioteca PyQt5
Para instalar o PyQt5, use o gerenciador de pacotes pip:
pip install PyQt5
Criando a janela básica da aplicação
Toda aplicação PyQt5 começa com a criação de um objeto QApplication. Este é o objeto principal que gerencia todas as janelas e eventos. A janela principal é criada com base no QWidget.
import sys
from PyQt5.QtWidgets import QApplication, QWidget
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("Janela Simples")
window.resize(300, 200)
window.show()
sys.exit(app.exec_())
O QApplication é um componente obrigatório para qualquer aplicação GUI em PyQt5. Ele processa eventos do sistema e gerencia o ciclo de vida da aplicação.
Trabalhando com os principais elementos de controle
QLineEdit - campo de entrada de texto
QLineEdit é um campo de entrada de texto de linha única. Este widget é amplamente utilizado para capturar dados do usuário.
from PyQt5.QtWidgets import QLineEdit, QVBoxLayout, QPushButton
window = QWidget()
window.setWindowTitle("Exemplo QLineEdit")
layout = QVBoxLayout()
line_edit = QLineEdit()
line_edit.setPlaceholderText("Digite seu nome")
button = QPushButton("Enviar")
def on_click():
print(f"Olá, {line_edit.text()}!")
button.clicked.connect(on_click)
layout.addWidget(line_edit)
layout.addWidget(button)
window.setLayout(layout)
window.show()
O campo de entrada suporta vários métodos para manipulação de texto:
- setText() - define o texto programaticamente
- text() - obtém o texto digitado
- setPlaceholderText() - define um texto de dica
- setMaxLength() - limita o comprimento máximo da entrada
QComboBox - criando listas suspensas
QComboBox permite que o usuário selecione uma opção de uma lista fornecida.
from PyQt5.QtWidgets import QComboBox
combo = QComboBox()
combo.addItems(["Selecione uma opção", "Python", "C++", "JavaScript"])
def on_selection_change(value):
print(f"Você selecionou: {value}")
combo.currentTextChanged.connect(on_selection_change)
layout.addWidget(combo)
QComboBox oferece vários métodos úteis:
- addItem() - adiciona um único item
- addItems() - adiciona uma lista de itens
- currentText() - obtém o texto selecionado
- currentIndex() - obtém o índice do item selecionado
- clear() - limpa todos os itens
QCheckBox - trabalhando com checkboxes e sinais
QCheckBox permite que o usuário marque ou desmarque uma opção.
from PyQt5.QtWidgets import QCheckBox
checkbox = QCheckBox("Concordo com os termos")
def on_checkbox_state(state):
if state:
print("Checkbox marcado")
else:
print("Checkbox desmarcado")
checkb