quarta-feira, 7 de setembro de 2011

Simples programa em Pyqt e QtDesigner

9/07/2011 10:00:00 PM
Nesse exemplo vou utilizar o QtDesigner para criar uma janela simples, e o pyuic para transformar o arquivo ui em python.



essa vai ser a jenela.ui:



agora após usar o pyuic:

pyuic4 Janela.ui > Janela.py

o código gerado:

from PyQt4 import QtCore, QtGui

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    _fromUtf8 = lambda s: s

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName(_fromUtf8("MainWindow"))
        MainWindow.resize(317, 228)
        self.centralwidget = QtGui.QWidget(MainWindow)
        self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "Simples Programa", None, QtGui.QApplication.UnicodeUTF8))


agora vamos criar o arquivo principal Programa.py:

import sys
from PyQt4.QtGui import QApplication, QMainWindow
from Janela import Ui_MainWindow

class JanelaPrincipal(QMainWindow, Ui_MainWindow):
    def __init__(self):
        QMainWindow.__init__(self)
        self.setupUi(self)

app = QApplication(sys.argv)
janela = JanelaPrincipal()
janela.show()

sys.exit(app.exec_())


agora, comentar o código:

import sys
from PyQt4.QtGui import QApplication, QMainWindow


aqui importamos as bibliotecas que iremos utilizar

from Janela import Ui_MainWindow

aqui também iremos importar, mas nesse caso a janela que criamos com o QtDesigner

class JanelaPrincipal(QMainWindow, Ui_MainWindow):


aqui criamos a classe JanelaPrincipal e herdamos as classes QMainWindow e Ui_MainWindow

def __init__(self):
        QMainWindow.__init__(self)
        self.setupUi(self)



aqui definimos o construtor e iniciamos o construtor também da classe herdada QMainWindow e executamos o metódo setupUi() de construção da janela que foi herdado da Ui_MainWindow e passamos como parâmetro a própria class pois ela herda da classe QMainWindow 

app = QApplication(sys.argv)
janela = JanelaPrincipal()
janela.show()


sys.exit(app.exec_())


aqui criamos a aplicação, a instância da classe JanelaPrincipal e chamamos o método público show() para criar a janela, e finalizamos com sys.exit(app.exec_()) para executar a aplicação

está aí, simples não é?

até a próxima...

2 comentários:

Rodrigo Haas disse...

Valeu amigo! O meu não estava rodando porque estava inicializando a classe de forma errada, mas ao ver a sua def __init__ corrigi e agora tudo funciona! Muito Obrigado por ter compartilhado seu conhecimento! Deus lhe abençoe !!!

Unknown disse...

Amém Rodrigo Hass, qualquer coisa estamos aí...

 
Abrir Rodape