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.
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
Pergunta
Mateus1234567
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
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.