Parte 2: Introduzir um método para vincular ações na interface Qt com reações do código Python
Vamos agora adicionar utilidades a esse código. A primeira função será abrir uma janela de diálogo para escolher um arquivo. Veja o código abaixo:
import sys
import os
import os.path
from PyQt4 import QtGui
from PyQt4.uic import loadUiType
Ui_MainWindow, QMainWindow = loadUiType('mainwindow.ui')
class Main(QMainWindow, Ui_MainWindow) :
def __init__(self, ) :
super(Main, self).__init__()
self.setupUi(self)
self.thisDir = os.path.dirname(os.path.abspath(__file__))
self.btOpenImage.clicked.connect(self.openImage)
def openImage(self) :
texto = 'Escolha uma imagem'
path = QtGui.QFileDialog.getOpenFileNameAndFilter(self,
texto,
self.thisDir,
"Images (*.png *.jpg)")
print str(path[0])
return
if __name__ == '__main__' :
app = QtGui.QApplication(sys.argv)
main = Main()
main.show()
sys.exit(app.exec_())
- Para facilitar a navegação, vamos criar uma variável chamada thisDir que recebe o valor do diretório em que o código Python está sendo executado (linha 14). Você poderia usar qualquer string mas eu prefiro usar a função os.path.dirname (necessário importar os módulos os e os.path, ver linhas 2 e 3);
- Uma parte muito importante deste código está na linha 15. Esta linha conecta o botão btOpenImage à função openImage() quando o botão é clicado;
- Por fim, definimos a função openImage() nas linhas 17-24;
- Na linha 19 obtemos o ‘diretório’+’nome de arquivo’ da imagem a ser escolhida. A função QtGui.QFileDialog.getOpenFileNameAndFilter é responsável pela criação da janela de diálogo para escolha de arquivos (ver documentação do QFileDialog). A variável path recebe uma lista com 2 valores sendo o primeiro valor o caminho completo para a imagem e o segundo valor é o filtro usado. Só estamos interessado no caminho;
- Na linha 24 imprimimos o valor do caminho no console para verificação. Execute o código e escolha uma imagem para testar o código.
Acesse o repositório desse código no GitHub (ou baixe pacote zip) para obter a versão 001 do código Python e a interface gráfica desta seção.
Outros posts relacionados:
Você precisa fazer login para comentar.