Ir para conteúdo
Fórum Script Brasil

Mateus1234567

Membros
  • Total de itens

    4
  • Registro em

  • Última visita

Posts postados por Mateus1234567

  1. Depois de  muito esforço aqui encontrei a resposta do Youtube e no GitHub, vou postar aqui caso alguém precise e acabe achando esse tópico.

    Eu estou usando o Qt Designer + pyuic4 para gerar o código da tela,  o problema é que o pyuic4 n gera m metodo __init__ no código, então, dentro da classe do form é preciso criar manualmente, ficao assim:

    class Ui_frInserir(QtGui.QDialog):
        def __init__(self):
            QtGui.QDialog.__init__(self)
            self.setupUi(self)

    No caso é um QDialog, mas poderia ser um QWidget sem problema. se você precisa passar informações pro formulário que vai ser aberto a duas maneiras, declarar o __init__ tendo parâmetros além do self e fazer as aplicações dentro do init, ou na chamada do form como eu fiz.
     

    def AbreForm(self,sinal):    
        self.f = Ui_frInserir()
        self.f.sinal = sinal    
        self.f.exec()
        self.lblResp.setText(str(self.f.resposta))

    A ultima linha está capturando uma variável que estava dentro da classe do form e jogando como texto numa label.

    Dps que fiz dessa maneira um simples  self.close() fechou o formulário que eu havia aberto.

  2. Depois de muito esforço consegui fazer o formulário abrir com o seguinte código

     

    Form = QtGui.QDialog()
    ui = Ui_frInserir()
    ui.setupUi(Form)
    ui.sinal = sinal
    Form.setModal(True)
    Form.exec()

    Meu problema agr é fechar o formulário com um botão.

    Dentro do metodo btnCalcular_Clicked já tentei colocar self.reject(), self.accept() e self.close() só que n acontece nada. Como faço para fechar um formulário? E para capturar a resposta dps de fechado é só colocar ui.resposta?

  3. Estou começando a aprender python agora e decidi aprender a interface gráfica QT. Só que surgiu uma dúvida ao realizar um exercício que envolvia a abertura de um formulário e a passagem de informação entre o 1° e o 2° formulário.

     

    O 1° formulário possui 4 botões (+,-,/,*) que quando pressionados abrem um novo formulário onde é pedido para digitar 2 números e a operação escolhida é realizada e o formulário fechado, a resposta aparece em uma label no 1° formulário.

     

    Pra passar o sinal e a resposta criei 2 variáveis

    Class UiForm(Object):
    	sinal = ''
    	resposta = 0
    
    def btnCalcular_Clicked(self):
        try:            
           if self.sinal == '+':
               self.resposta = float(self.txt1.text()) + float(self.txt2.text())
           elif self.sinal == '-':
                self.resposta = float(self.txt1.text()) - float(self.txt2.text())
           elif self.sinal == '/':
                self.resposta = float(self.txt1.text()) / float(self.txt2.text())
           elif self.sinal == '*':
                self.resposta = float(self.txt1.text()) * float(self.txt2.text())
        except:
            QtGui.QMessageBox.warning(None, "Erro", 'Digite números válidos')

    O problema mesmo é para chamar o formulário, já tentei de diversas maneiras. Aqui vai algumas delas e os erros q deram.

    btnMais_Clicked(self):
        import sys
        app = QtGui.QApplication(sys.argv)
        Form = QtGui.QWidget()
        ui = Ui_Form()
        ui.setupUi(Form)
        Form.show()
        sys.exit(app.exec_())
    
    Erro: The event looping is already running
    
    def btnMais_Clicked(self):
        MainWindow = QtGui.QMainWindow()
        ui = Ui_Form()
        ui.setupUi(MainWindow)
        MainWindow.show()
    Erro: Um pequeno form até abre, mas fecha instantaneamente
    
    def btnMais_Clicked(self):
        f = Ui_Form()
        f.show()
    Erro: Ui_Form Object has no attribute show

     

×
×
  • Criar Novo...