PYQT5: после нажатия кнопки для расчета по формуле приложение закрывается. - PullRequest
0 голосов
/ 13 сентября 2018

Я делаю физический калькулятор, который берет значения от человека и использует расчет, чтобы показать ответ.проблема в том, что когда я нажимаю на кнопку отправить, чтобы взять значения, сохранить их как переменную и показать кнопку, чтобы показать ответ, приложение закрывается, а возвышенный текст показывает, что REPL закрыт.Понятия не имею почему.пожалуйста помоги.я думаю, что проблема в f2 ().спасибо за ваше терпение.

import sys
from PyQt5.QtWidgets import QWidget
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import QPushButton
from PyQt5.QtWidgets import QToolTip , QCheckBox, QLCDNumber,QLineEdit,QInputDialog#just compile the modules like this
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QLabel
def ObjectDensity():
    dflabel = QLabel("Please Enter Density of Fluid: ",w)
    dflabel.move(25,220)
    dflabel.show()
    dfte = QLineEdit(w)
    dfte.move(25,260)
    dfte.show()
    Weight2 = QLabel("Please Enter Weight:",w)
    Weight2.move(25,300)
    Weight2.show()
    Wte = QLineEdit(w)
    Wte.move(25,340)
    Wte.show()
    AIW2 = QLabel("Enter Apperent Immersed Weight: ",w)
    AIW2.move(25,380)
    AIW2.show()
    aiwte = QLineEdit(w)
    aiwte.move(25,420)
    aiwte.show()
    ansbutton = QPushButton("Submit",w)
    ansbutton.move(50,480)
    ansbutton.show()
    ansbutton.clicked.connect(lambda: f1(dfte,Wte,aiwte,ansdo))
    # df1 = dfte.text()
    # w2 = Wte.text()
    # aiw6 = aiwte.text()
def f1(dfte,Wte,aiwte,ansdo):

    df1 = int(dfte.text())
    w2 = int(Wte.text())
    aiw6 = int(aiwte.text())
    # ansdo = ((w2/w2-aiw6)*df1)
    # ans4 = int(ansdo)
    ans = QPushButton("press to show answer",w)
    ans.move(50,250)
    ans.show()
    ans.clicked.connect(lambda:f2(w2,aiw6,df1))
def f2(w2,aiw6,df1):
    ansdo = ((w2/w2-aiw6)*df1)
    ans4 = int(ansdo)
    answer = QLabel(ans4,w)
    answer.move(75,300)
    answer.show()


def arch():
    l_archimedes = QLabel("Archimedes' Law",w)
    l_archimedes.move(25,80)
    l_archimedes.show()
    l_archimedes2 = QLabel("Density of Object/Density of Fluid = Weight/(Weight - Apparent Immersed Weight)",w)
    l_archimedes2.move(25,110)
    l_archimedes2.show()
    Archimedeslaw = QLabel("What Do You Want to Solve For:",w)
    Archimedeslaw.move(25,145)
    Archimedeslaw.show()
    dop = QPushButton("Density of Object",w)
    dop.move(25,160)
    dop.show()
    dop.clicked.connect(ObjectDensity)


    DF = QPushButton("Density of Fluid",w)
    DF.move(200,160)
    DF.show()
    Weight = QPushButton("Weight",w)
    Weight.move(375,160)
    Weight.show()
    AIW = QPushButton("Apperent Immersed Weight",w)
    AIW.move(500,160)
    AIW.show()

app = QApplication(sys.argv)
w = QWidget()
w.resize(900,600)
w.move(460,0)
w.setWindowTitle("Physics Laws")
L1 = QLabel("Welcome To Physics Laws",w,)
L1.move(25,0)
b1 = QPushButton("Archimedes Law",w)
b1.move(25,45)
b1.clicked.connect(arch)









w. show()
sys.exit(app.exec_())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...