RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1392960
Accepted
Захар Уляшов
Захар Уляшов
Asked:2022-08-24 00:33:26 +0000 UTC2022-08-24 00:33:26 +0000 UTC 2022-08-24 00:33:26 +0000 UTC

计算器不计算百分比

  • 772

我正在用PyQt5写一个计算器,我不能让它计算百分比

编码:

from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(320, 540)
        MainWindow.setMinimumSize(QtCore.QSize(320, 460))
        MainWindow.setMaximumSize(QtCore.QSize(320, 540))
        MainWindow.setStyleSheet("")
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.input_data = QtWidgets.QLineEdit(self.centralwidget)
        self.input_data.setGeometry(QtCore.QRect(0, 0, 320, 140))
        self.input_data.setMinimumSize(QtCore.QSize(320, 140))
        self.input_data.setMaximumSize(QtCore.QSize(320, 140))
        font = QtGui.QFont()
        font.setPointSize(30)
        self.input_data.setFont(font)
        self.input_data.setStyleSheet("background-color: rgb(0, 0, 0);\n"
"border: none;\n"
"color: white;\n"
"")
        self.input_data.setText("")
        self.input_data.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.input_data.setObjectName("input_data")
        self.button7 = QtWidgets.QPushButton(self.centralwidget)
        self.button7.setGeometry(QtCore.QRect(0, 220, 81, 81))
        self.button7.setMinimumSize(QtCore.QSize(81, 81))
        self.button7.setMaximumSize(QtCore.QSize(81, 81))
        font = QtGui.QFont()
        font.setPointSize(20)
        self.button7.setFont(font)
        self.button7.setStyleSheet("QPushButton {\n"
"    color: #ffffff;\n"
"    background-color: rgb(5, 15, 17);\n"
"    border-radius: 0px;\n"
"}\n"
"\n"
"QPushButton:hover {\n"
"    \n"
"    background-color: rgb(63, 63, 63);\n"
"}")
        self.button7.setObjectName("button7")
        self.button8 = QtWidgets.QPushButton(self.centralwidget)
        self.button8.setGeometry(QtCore.QRect(80, 220, 81, 81))
        self.button8.setMinimumSize(QtCore.QSize(81, 81))
        self.button8.setMaximumSize(QtCore.QSize(81, 81))
        font = QtGui.QFont()
        font.setPointSize(20)
        self.button8.setFont(font)
        self.button8.setStyleSheet("QPushButton {\n"
"    color: #ffffff;\n"
"    background-color: rgb(5, 15, 17);\n"
"    border-radius: 0px;\n"
"}\n"
"\n"
"QPushButton:hover {\n"
"    \n"
"    background-color: rgb(63, 63, 63);\n"
"}")
        self.button8.setObjectName("button8")
        self.button9 = QtWidgets.QPushButton(self.centralwidget)
        self.button9.setGeometry(QtCore.QRect(160, 220, 81, 81))
        self.button9.setMinimumSize(QtCore.QSize(81, 81))
        self.button9.setMaximumSize(QtCore.QSize(81, 81))
        font = QtGui.QFont()
        font.setPointSize(20)
        self.button9.setFont(font)
        self.button9.setStyleSheet("QPushButton {\n"
"    color: #ffffff;\n"
"    background-color: rgb(5, 15, 17);\n"
"    border-radius: 0px;\n"
"}\n"
"\n"
"QPushButton:hover {\n"
"    \n"
"    background-color: rgb(63, 63, 63);\n"
"}")
        self.button9.setObjectName("button9")
        self.button4 = QtWidgets.QPushButton(self.centralwidget)
        self.button4.setGeometry(QtCore.QRect(0, 300, 81, 81))
        self.button4.setMinimumSize(QtCore.QSize(81, 81))
        self.button4.setMaximumSize(QtCore.QSize(81, 81))
        font = QtGui.QFont()
        font.setPointSize(20)
        self.button4.setFont(font)
        self.button4.setStyleSheet("QPushButton {\n"
"    color: #ffffff;\n"
"    background-color: rgb(5, 15, 17);\n"
"    border-radius: 0px;\n"
"}\n"
"\n"
"QPushButton:hover {\n"
"    \n"
"    background-color: rgb(63, 63, 63);\n"
"}")
        self.button4.setObjectName("button4")
        self.button5 = QtWidgets.QPushButton(self.centralwidget)
        self.button5.setGeometry(QtCore.QRect(80, 300, 81, 81))
        self.button5.setMinimumSize(QtCore.QSize(81, 81))
        self.button5.setMaximumSize(QtCore.QSize(81, 81))
        font = QtGui.QFont()
        font.setPointSize(20)
        self.button5.setFont(font)
        self.button5.setStyleSheet("QPushButton {\n"
"    color: #ffffff;\n"
"    background-color: rgb(5, 15, 17);\n"
"    border-radius: 0px;\n"
"}\n"
"\n"
"QPushButton:hover {\n"
"    \n"
"    background-color: rgb(63, 63, 63);\n"
"}")
        self.button5.setObjectName("button5")
        self.button6 = QtWidgets.QPushButton(self.centralwidget)
        self.button6.setGeometry(QtCore.QRect(160, 300, 81, 81))
        self.button6.setMinimumSize(QtCore.QSize(81, 81))
        self.button6.setMaximumSize(QtCore.QSize(81, 81))
        font = QtGui.QFont()
        font.setPointSize(20)
        self.button6.setFont(font)
        self.button6.setStyleSheet("QPushButton {\n"
"    color: #ffffff;\n"
"    background-color: rgb(5, 15, 17);\n"
"    border-radius: 0px;\n"
"}\n"
"\n"
"QPushButton:hover {\n"
"    \n"
"    background-color: rgb(63, 63, 63);\n"
"}")
        self.button6.setObjectName("button6")
        self.buttonpoint = QtWidgets.QPushButton(self.centralwidget)
        self.buttonpoint.setGeometry(QtCore.QRect(80, 460, 81, 81))
        self.buttonpoint.setMinimumSize(QtCore.QSize(81, 81))
        self.buttonpoint.setMaximumSize(QtCore.QSize(81, 81))
        font = QtGui.QFont()
        font.setPointSize(20)
        self.buttonpoint.setFont(font)
        self.buttonpoint.setStyleSheet("QPushButton {\n"
"    color: #ffffff;\n"
"    background-color: rgb(5, 15, 17);\n"
"    border-radius: 0px;\n"
"}\n"
"\n"
"QPushButton:hover {\n"
"    \n"
"    background-color: rgb(63, 63, 63);\n"
"}")
        self.buttonpoint.setObjectName("buttonpoint")
        self.button0 = QtWidgets.QPushButton(self.centralwidget)
        self.button0.setGeometry(QtCore.QRect(0, 460, 81, 81))
        self.button0.setMinimumSize(QtCore.QSize(81, 81))
        self.button0.setMaximumSize(QtCore.QSize(81, 81))
        font = QtGui.QFont()
        font.setPointSize(20)
        self.button0.setFont(font)
        self.button0.setStyleSheet("QPushButton {\n"
"    color: #ffffff;\n"
"    background-color: rgb(5, 15, 17);\n"
"    border-radius: 0px;\n"
"}\n"
"\n"
"QPushButton:hover {\n"
"    \n"
"    background-color: rgb(63, 63, 63);\n"
"}")
        self.button0.setObjectName("button0")
        self.buttonc = QtWidgets.QPushButton(self.centralwidget)
        self.buttonc.setGeometry(QtCore.QRect(0, 140, 81, 81))
        self.buttonc.setMinimumSize(QtCore.QSize(81, 81))
        self.buttonc.setMaximumSize(QtCore.QSize(162, 81))
        font = QtGui.QFont()
        font.setPointSize(20)
        self.buttonc.setFont(font)
        self.buttonc.setStyleSheet("QPushButton {\n"
"    color: #ffffff;\n"
"    background-color: rgb(5, 15, 17);\n"
"    border-radius: 0px;\n"
"}\n"
"\n"
"QPushButton:hover {\n"
"    \n"
"    background-color: rgb(63, 63, 63);\n"
"}")
        self.buttonc.setObjectName("buttonc")
        self.button1 = QtWidgets.QPushButton(self.centralwidget)
        self.button1.setGeometry(QtCore.QRect(0, 380, 81, 81))
        self.button1.setMinimumSize(QtCore.QSize(81, 81))
        self.button1.setMaximumSize(QtCore.QSize(81, 81))
        font = QtGui.QFont()
        font.setPointSize(20)
        self.button1.setFont(font)
        self.button1.setStyleSheet("QPushButton {\n"
"    color: #ffffff;\n"
"    background-color: rgb(5, 15, 17);\n"
"    border-radius: 0px;\n"
"}\n"
"\n"
"QPushButton:hover {\n"
"    \n"
"    background-color: rgb(63, 63, 63);\n"
"}")
        self.button1.setObjectName("button1")
        self.button2 = QtWidgets.QPushButton(self.centralwidget)
        self.button2.setGeometry(QtCore.QRect(80, 380, 81, 81))
        self.button2.setMinimumSize(QtCore.QSize(81, 81))
        self.button2.setMaximumSize(QtCore.QSize(81, 81))
        font = QtGui.QFont()
        font.setPointSize(20)
        self.button2.setFont(font)
        self.button2.setStyleSheet("QPushButton {\n"
"    color: #ffffff;\n"
"    background-color: rgb(5, 15, 17);\n"
"    border-radius: 0px;\n"
"}\n"
"\n"
"QPushButton:hover {\n"
"    \n"
"    background-color: rgb(63, 63, 63);\n"
"}")
        self.button2.setObjectName("button2")
        self.button3 = QtWidgets.QPushButton(self.centralwidget)
        self.button3.setGeometry(QtCore.QRect(160, 380, 81, 81))
        self.button3.setMinimumSize(QtCore.QSize(81, 81))
        self.button3.setMaximumSize(QtCore.QSize(81, 81))
        font = QtGui.QFont()
        font.setPointSize(20)
        self.button3.setFont(font)
        self.button3.setStyleSheet("QPushButton {\n"
"    color: #ffffff;\n"
"    background-color: rgb(5, 15, 17);\n"
"    border-radius: 0px;\n"
"}\n"
"\n"
"QPushButton:hover {\n"
"    \n"
"    background-color: rgb(63, 63, 63);\n"
"}")
        self.button3.setObjectName("button3")
        self.buttonbackspace = QtWidgets.QPushButton(self.centralwidget)
        self.buttonbackspace.setGeometry(QtCore.QRect(160, 140, 81, 81))
        self.buttonbackspace.setMinimumSize(QtCore.QSize(81, 81))
        self.buttonbackspace.setMaximumSize(QtCore.QSize(81, 81))
        font = QtGui.QFont()
        font.setPointSize(20)
        self.buttonbackspace.setFont(font)
        self.buttonbackspace.setStyleSheet("QPushButton {\n"
"    color: #ffffff;\n"
"    background-color: rgb(5, 15, 17);\n"
"    border-radius: 0px;\n"
"}\n"
"\n"
"QPushButton:hover {\n"
"    \n"
"    background-color: rgb(63, 63, 63);\n"
"}")
        self.buttonbackspace.setObjectName("buttonbackspace")
        self.buttonadd = QtWidgets.QPushButton(self.centralwidget)
        self.buttonadd.setGeometry(QtCore.QRect(240, 140, 81, 81))
        self.buttonadd.setMinimumSize(QtCore.QSize(81, 81))
        self.buttonadd.setMaximumSize(QtCore.QSize(81, 81))
        font = QtGui.QFont()
        font.setPointSize(20)
        self.buttonadd.setFont(font)
        self.buttonadd.setStyleSheet("QPushButton {\n"
"    color: #ffffff;\n"
"    background-color: rgb(12, 66, 68);\n"
"    border-radius: 0px;\n"
"}\n"
"QPushButton:hover {\n"
"    background-color: rgb(18, 103, 106);\n"
"}")
        self.buttonadd.setObjectName("buttonadd")
        self.buttonsub = QtWidgets.QPushButton(self.centralwidget)
        self.buttonsub.setGeometry(QtCore.QRect(240, 220, 81, 81))
        self.buttonsub.setMinimumSize(QtCore.QSize(81, 81))
        self.buttonsub.setMaximumSize(QtCore.QSize(81, 81))
        font = QtGui.QFont()
        font.setPointSize(20)
        self.buttonsub.setFont(font)
        self.buttonsub.setStyleSheet("QPushButton {\n"
"    color: #ffffff;\n"
"    background-color: rgb(12, 66, 68);\n"
"    border-radius: 0px;\n"
"}\n"
"QPushButton:hover {\n"
"    background-color: rgb(18, 103, 106);\n"
"}")
        self.buttonsub.setObjectName("buttonsub")
        self.buttonmult = QtWidgets.QPushButton(self.centralwidget)
        self.buttonmult.setGeometry(QtCore.QRect(240, 300, 81, 81))
        self.buttonmult.setMinimumSize(QtCore.QSize(81, 81))
        self.buttonmult.setMaximumSize(QtCore.QSize(81, 81))
        font = QtGui.QFont()
        font.setPointSize(20)
        self.buttonmult.setFont(font)
        self.buttonmult.setStyleSheet("QPushButton {\n"
"    color: #ffffff;\n"
"    background-color: rgb(12, 66, 68);\n"
"    border-radius: 0px;\n"
"}\n"
"QPushButton:hover {\n"
"    background-color: rgb(18, 103, 106);\n"
"}")
        self.buttonmult.setObjectName("buttonmult")
        self.buttondiv = QtWidgets.QPushButton(self.centralwidget)
        self.buttondiv.setGeometry(QtCore.QRect(240, 380, 81, 81))
        self.buttondiv.setMinimumSize(QtCore.QSize(81, 81))
        self.buttondiv.setMaximumSize(QtCore.QSize(81, 81))
        font = QtGui.QFont()
        font.setPointSize(20)
        self.buttondiv.setFont(font)
        self.buttondiv.setStyleSheet("QPushButton {\n"
"    color: #ffffff;\n"
"    background-color: rgb(12, 66, 68);\n"
"    border-radius: 0px;\n"
"}\n"
"QPushButton:hover {\n"
"    background-color: rgb(18, 103, 106);\n"
"}")
        self.buttondiv.setObjectName("buttondiv")
        self.buttonequally = QtWidgets.QPushButton(self.centralwidget)
        self.buttonequally.setGeometry(QtCore.QRect(160, 460, 162, 81))
        self.buttonequally.setMinimumSize(QtCore.QSize(162, 81))
        self.buttonequally.setMaximumSize(QtCore.QSize(162, 81))
        font = QtGui.QFont()
        font.setPointSize(20)
        self.buttonequally.setFont(font)
        self.buttonequally.setStyleSheet("QPushButton {\n"
"    color: #ffffff;\n"
"    background-color: rgb(41, 174, 161);\n"
"    border-radius: 0px;\n"
"}\n"
"\n"
"QPushButton:hover {\n"
"    background-color: rgb(31, 135, 125);\n"
"}")
        self.buttonequally.setObjectName("buttonequally")
        self.history = QtWidgets.QLabel(self.centralwidget)
        self.history.setGeometry(QtCore.QRect(50, 20, 261, 20))
        font = QtGui.QFont()
        font.setPointSize(13)
        self.history.setFont(font)
        self.history.setStyleSheet("color: rgb(34, 187, 187);")
        self.history.setText("")
        self.history.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.history.setObjectName("history")
        self.buttonprocent = QtWidgets.QPushButton(self.centralwidget)
        self.buttonprocent.setGeometry(QtCore.QRect(80, 140, 81, 81))
        self.buttonprocent.setMinimumSize(QtCore.QSize(81, 81))
        self.buttonprocent.setMaximumSize(QtCore.QSize(81, 81))
        font = QtGui.QFont()
        font.setPointSize(20)
        self.buttonprocent.setFont(font)
        self.buttonprocent.setStyleSheet("QPushButton {\n"
"    color: #ffffff;\n"
"    background-color: rgb(5, 15, 17);\n"
"    border-radius: 0px;\n"
"}\n"
"\n"
"QPushButton:hover {\n"
"    \n"
"    background-color: rgb(63, 63, 63);\n"
"}")
        self.buttonprocent.setObjectName("buttonprocent")
        MainWindow.setCentralWidget(self.centralwidget)

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

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.button7.setText(_translate("MainWindow", "7"))
        self.button8.setText(_translate("MainWindow", "8"))
        self.button9.setText(_translate("MainWindow", "9"))
        self.button4.setText(_translate("MainWindow", "4"))
        self.button5.setText(_translate("MainWindow", "5"))
        self.button6.setText(_translate("MainWindow", "6"))
        self.buttonpoint.setText(_translate("MainWindow", "."))
        self.button0.setText(_translate("MainWindow", "0"))
        self.buttonc.setText(_translate("MainWindow", "с"))
        self.button1.setText(_translate("MainWindow", "1"))
        self.button2.setText(_translate("MainWindow", "2"))
        self.button3.setText(_translate("MainWindow", "3"))
        self.buttonbackspace.setText(_translate("MainWindow", "<"))
        self.buttonadd.setText(_translate("MainWindow", "+"))
        self.buttonsub.setText(_translate("MainWindow", "-"))
        self.buttonmult.setText(_translate("MainWindow", "*"))
        self.buttondiv.setText(_translate("MainWindow", "/"))
        self.buttonequally.setText(_translate("MainWindow", "="))
        self.buttonprocent.setText(_translate("MainWindow", "%"))


class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)

        self.button0.clicked.connect(lambda: self.write_number(self.button0.text()))
        self.button1.clicked.connect(lambda: self.write_number(self.button1.text()))
        self.button2.clicked.connect(lambda: self.write_number(self.button2.text()))
        self.button3.clicked.connect(lambda: self.write_number(self.button3.text()))
        self.button4.clicked.connect(lambda: self.write_number(self.button4.text()))
        self.button5.clicked.connect(lambda: self.write_number(self.button5.text()))
        self.button6.clicked.connect(lambda: self.write_number(self.button6.text()))
        self.button7.clicked.connect(lambda: self.write_number(self.button7.text()))
        self.button8.clicked.connect(lambda: self.write_number(self.button8.text()))
        self.button9.clicked.connect(lambda: self.write_number(self.button9.text()))
        self.buttonpoint.clicked.connect(lambda: self.write_number(self.buttonpoint.text()))
        self.buttonadd.clicked.connect(lambda: self.write_number(self.buttonadd.text()))
        self.buttonsub.clicked.connect(lambda: self.write_number(self.buttonsub.text()))
        self.buttondiv.clicked.connect(lambda: self.write_number(self.buttondiv.text()))
        self.buttonmult.clicked.connect(lambda: self.write_number(self.buttonmult.text()))
        self.buttonprocent.clicked.connect(lambda: self.write_number(self.buttonprocent.text()))
        self.buttonequally.clicked.connect(self.answer)
        self.buttonc.clicked.connect(self.clean)
        self.buttonbackspace.clicked.connect(self.del_last)



    def write_number(self, number):
        if self.input_data.text() == '0':
            self.input_data.setText(number)
        else:
            self.input_data.setText(self.input_data.text() + number)


    def del_last(self):
        text = self.input_data.text()
        if not text:
            self.input_data.setText('0')
        else:
            text = self.input_data.text()[:-1]
            self.input_data.setText(text)

    def clean(self):
        self.input_data.setText('0')

    def answer(self):
        result = eval(self.input_data.text())
        self.input_data.setText(str(result))



if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    w = MainWindow()
    w.show()
    sys.exit(app.exec_())

当我试图得到响应时,程序就崩溃了。

在此处输入图像描述

python
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    S. Nick
    2022-08-24T03:07:57Z2022-08-24T03:07:57Z

    或多或少是这样的:

    from PyQt5 import QtCore, QtGui, QtWidgets
    
    
    class Ui_MainWindow(object):
        def setupUi(self, MainWindow):
            MainWindow.setObjectName("MainWindow")
            MainWindow.resize(320, 540)
            MainWindow.setMinimumSize(QtCore.QSize(320, 460))
            MainWindow.setMaximumSize(QtCore.QSize(320, 540))
            MainWindow.setStyleSheet("")
            self.centralwidget = QtWidgets.QWidget(MainWindow)
            self.centralwidget.setObjectName("centralwidget")
            self.input_data = QtWidgets.QLineEdit(self.centralwidget)
            self.input_data.setGeometry(QtCore.QRect(0, 0, 320, 140))
            self.input_data.setMinimumSize(QtCore.QSize(320, 140))
            self.input_data.setMaximumSize(QtCore.QSize(320, 140))
            font = QtGui.QFont()
            font.setPointSize(30)
            self.input_data.setFont(font)
            self.input_data.setStyleSheet("background-color: rgb(0, 0, 0);\n"
    "border: none;\n"
    "color: white;\n"
    "")
            self.input_data.setText("")
            self.input_data.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
            self.input_data.setObjectName("input_data")
            self.button7 = QtWidgets.QPushButton(self.centralwidget)
            self.button7.setGeometry(QtCore.QRect(0, 220, 81, 81))
            self.button7.setMinimumSize(QtCore.QSize(81, 81))
            self.button7.setMaximumSize(QtCore.QSize(81, 81))
            font = QtGui.QFont()
            font.setPointSize(20)
            self.button7.setFont(font)
            self.button7.setStyleSheet("QPushButton {\n"
    "    color: #ffffff;\n"
    "    background-color: rgb(5, 15, 17);\n"
    "    border-radius: 0px;\n"
    "}\n"
    "\n"
    "QPushButton:hover {\n"
    "    \n"
    "    background-color: rgb(63, 63, 63);\n"
    "}")
            self.button7.setObjectName("button7")
            self.button8 = QtWidgets.QPushButton(self.centralwidget)
            self.button8.setGeometry(QtCore.QRect(80, 220, 81, 81))
            self.button8.setMinimumSize(QtCore.QSize(81, 81))
            self.button8.setMaximumSize(QtCore.QSize(81, 81))
            font = QtGui.QFont()
            font.setPointSize(20)
            self.button8.setFont(font)
            self.button8.setStyleSheet("QPushButton {\n"
    "    color: #ffffff;\n"
    "    background-color: rgb(5, 15, 17);\n"
    "    border-radius: 0px;\n"
    "}\n"
    "\n"
    "QPushButton:hover {\n"
    "    \n"
    "    background-color: rgb(63, 63, 63);\n"
    "}")
            self.button8.setObjectName("button8")
            self.button9 = QtWidgets.QPushButton(self.centralwidget)
            self.button9.setGeometry(QtCore.QRect(160, 220, 81, 81))
            self.button9.setMinimumSize(QtCore.QSize(81, 81))
            self.button9.setMaximumSize(QtCore.QSize(81, 81))
            font = QtGui.QFont()
            font.setPointSize(20)
            self.button9.setFont(font)
            self.button9.setStyleSheet("QPushButton {\n"
    "    color: #ffffff;\n"
    "    background-color: rgb(5, 15, 17);\n"
    "    border-radius: 0px;\n"
    "}\n"
    "\n"
    "QPushButton:hover {\n"
    "    \n"
    "    background-color: rgb(63, 63, 63);\n"
    "}")
            self.button9.setObjectName("button9")
            self.button4 = QtWidgets.QPushButton(self.centralwidget)
            self.button4.setGeometry(QtCore.QRect(0, 300, 81, 81))
            self.button4.setMinimumSize(QtCore.QSize(81, 81))
            self.button4.setMaximumSize(QtCore.QSize(81, 81))
            font = QtGui.QFont()
            font.setPointSize(20)
            self.button4.setFont(font)
            self.button4.setStyleSheet("QPushButton {\n"
    "    color: #ffffff;\n"
    "    background-color: rgb(5, 15, 17);\n"
    "    border-radius: 0px;\n"
    "}\n"
    "\n"
    "QPushButton:hover {\n"
    "    \n"
    "    background-color: rgb(63, 63, 63);\n"
    "}")
            self.button4.setObjectName("button4")
            self.button5 = QtWidgets.QPushButton(self.centralwidget)
            self.button5.setGeometry(QtCore.QRect(80, 300, 81, 81))
            self.button5.setMinimumSize(QtCore.QSize(81, 81))
            self.button5.setMaximumSize(QtCore.QSize(81, 81))
            font = QtGui.QFont()
            font.setPointSize(20)
            self.button5.setFont(font)
            self.button5.setStyleSheet("QPushButton {\n"
    "    color: #ffffff;\n"
    "    background-color: rgb(5, 15, 17);\n"
    "    border-radius: 0px;\n"
    "}\n"
    "\n"
    "QPushButton:hover {\n"
    "    \n"
    "    background-color: rgb(63, 63, 63);\n"
    "}")
            self.button5.setObjectName("button5")
            self.button6 = QtWidgets.QPushButton(self.centralwidget)
            self.button6.setGeometry(QtCore.QRect(160, 300, 81, 81))
            self.button6.setMinimumSize(QtCore.QSize(81, 81))
            self.button6.setMaximumSize(QtCore.QSize(81, 81))
            font = QtGui.QFont()
            font.setPointSize(20)
            self.button6.setFont(font)
            self.button6.setStyleSheet("QPushButton {\n"
    "    color: #ffffff;\n"
    "    background-color: rgb(5, 15, 17);\n"
    "    border-radius: 0px;\n"
    "}\n"
    "\n"
    "QPushButton:hover {\n"
    "    \n"
    "    background-color: rgb(63, 63, 63);\n"
    "}")
            self.button6.setObjectName("button6")
            self.buttonpoint = QtWidgets.QPushButton(self.centralwidget)
            self.buttonpoint.setGeometry(QtCore.QRect(80, 460, 81, 81))
            self.buttonpoint.setMinimumSize(QtCore.QSize(81, 81))
            self.buttonpoint.setMaximumSize(QtCore.QSize(81, 81))
            font = QtGui.QFont()
            font.setPointSize(20)
            self.buttonpoint.setFont(font)
            self.buttonpoint.setStyleSheet("QPushButton {\n"
    "    color: #ffffff;\n"
    "    background-color: rgb(5, 15, 17);\n"
    "    border-radius: 0px;\n"
    "}\n"
    "\n"
    "QPushButton:hover {\n"
    "    \n"
    "    background-color: rgb(63, 63, 63);\n"
    "}")
            self.buttonpoint.setObjectName("buttonpoint")
            self.button0 = QtWidgets.QPushButton(self.centralwidget)
            self.button0.setGeometry(QtCore.QRect(0, 460, 81, 81))
            self.button0.setMinimumSize(QtCore.QSize(81, 81))
            self.button0.setMaximumSize(QtCore.QSize(81, 81))
            font = QtGui.QFont()
            font.setPointSize(20)
            self.button0.setFont(font)
            self.button0.setStyleSheet("QPushButton {\n"
    "    color: #ffffff;\n"
    "    background-color: rgb(5, 15, 17);\n"
    "    border-radius: 0px;\n"
    "}\n"
    "\n"
    "QPushButton:hover {\n"
    "    \n"
    "    background-color: rgb(63, 63, 63);\n"
    "}")
            self.button0.setObjectName("button0")
            self.buttonc = QtWidgets.QPushButton(self.centralwidget)
            self.buttonc.setGeometry(QtCore.QRect(0, 140, 81, 81))
            self.buttonc.setMinimumSize(QtCore.QSize(81, 81))
            self.buttonc.setMaximumSize(QtCore.QSize(162, 81))
            font = QtGui.QFont()
            font.setPointSize(20)
            self.buttonc.setFont(font)
            self.buttonc.setStyleSheet("QPushButton {\n"
    "    color: #ffffff;\n"
    "    background-color: rgb(5, 15, 17);\n"
    "    border-radius: 0px;\n"
    "}\n"
    "\n"
    "QPushButton:hover {\n"
    "    \n"
    "    background-color: rgb(63, 63, 63);\n"
    "}")
            self.buttonc.setObjectName("buttonc")
            self.button1 = QtWidgets.QPushButton(self.centralwidget)
            self.button1.setGeometry(QtCore.QRect(0, 380, 81, 81))
            self.button1.setMinimumSize(QtCore.QSize(81, 81))
            self.button1.setMaximumSize(QtCore.QSize(81, 81))
            font = QtGui.QFont()
            font.setPointSize(20)
            self.button1.setFont(font)
            self.button1.setStyleSheet("QPushButton {\n"
    "    color: #ffffff;\n"
    "    background-color: rgb(5, 15, 17);\n"
    "    border-radius: 0px;\n"
    "}\n"
    "\n"
    "QPushButton:hover {\n"
    "    \n"
    "    background-color: rgb(63, 63, 63);\n"
    "}")
            self.button1.setObjectName("button1")
            self.button2 = QtWidgets.QPushButton(self.centralwidget)
            self.button2.setGeometry(QtCore.QRect(80, 380, 81, 81))
            self.button2.setMinimumSize(QtCore.QSize(81, 81))
            self.button2.setMaximumSize(QtCore.QSize(81, 81))
            font = QtGui.QFont()
            font.setPointSize(20)
            self.button2.setFont(font)
            self.button2.setStyleSheet("QPushButton {\n"
    "    color: #ffffff;\n"
    "    background-color: rgb(5, 15, 17);\n"
    "    border-radius: 0px;\n"
    "}\n"
    "\n"
    "QPushButton:hover {\n"
    "    \n"
    "    background-color: rgb(63, 63, 63);\n"
    "}")
            self.button2.setObjectName("button2")
            self.button3 = QtWidgets.QPushButton(self.centralwidget)
            self.button3.setGeometry(QtCore.QRect(160, 380, 81, 81))
            self.button3.setMinimumSize(QtCore.QSize(81, 81))
            self.button3.setMaximumSize(QtCore.QSize(81, 81))
            font = QtGui.QFont()
            font.setPointSize(20)
            self.button3.setFont(font)
            self.button3.setStyleSheet("QPushButton {\n"
    "    color: #ffffff;\n"
    "    background-color: rgb(5, 15, 17);\n"
    "    border-radius: 0px;\n"
    "}\n"
    "\n"
    "QPushButton:hover {\n"
    "    \n"
    "    background-color: rgb(63, 63, 63);\n"
    "}")
            self.button3.setObjectName("button3")
            self.buttonbackspace = QtWidgets.QPushButton(self.centralwidget)
            self.buttonbackspace.setGeometry(QtCore.QRect(160, 140, 81, 81))
            self.buttonbackspace.setMinimumSize(QtCore.QSize(81, 81))
            self.buttonbackspace.setMaximumSize(QtCore.QSize(81, 81))
            font = QtGui.QFont()
            font.setPointSize(20)
            self.buttonbackspace.setFont(font)
            self.buttonbackspace.setStyleSheet("QPushButton {\n"
    "    color: #ffffff;\n"
    "    background-color: rgb(5, 15, 17);\n"
    "    border-radius: 0px;\n"
    "}\n"
    "\n"
    "QPushButton:hover {\n"
    "    \n"
    "    background-color: rgb(63, 63, 63);\n"
    "}")
            self.buttonbackspace.setObjectName("buttonbackspace")
            self.buttonadd = QtWidgets.QPushButton(self.centralwidget)
            self.buttonadd.setGeometry(QtCore.QRect(240, 140, 81, 81))
            self.buttonadd.setMinimumSize(QtCore.QSize(81, 81))
            self.buttonadd.setMaximumSize(QtCore.QSize(81, 81))
            font = QtGui.QFont()
            font.setPointSize(20)
            self.buttonadd.setFont(font)
            self.buttonadd.setStyleSheet("QPushButton {\n"
    "    color: #ffffff;\n"
    "    background-color: rgb(12, 66, 68);\n"
    "    border-radius: 0px;\n"
    "}\n"
    "QPushButton:hover {\n"
    "    background-color: rgb(18, 103, 106);\n"
    "}")
            self.buttonadd.setObjectName("buttonadd")
            self.buttonsub = QtWidgets.QPushButton(self.centralwidget)
            self.buttonsub.setGeometry(QtCore.QRect(240, 220, 81, 81))
            self.buttonsub.setMinimumSize(QtCore.QSize(81, 81))
            self.buttonsub.setMaximumSize(QtCore.QSize(81, 81))
            font = QtGui.QFont()
            font.setPointSize(20)
            self.buttonsub.setFont(font)
            self.buttonsub.setStyleSheet("QPushButton {\n"
    "    color: #ffffff;\n"
    "    background-color: rgb(12, 66, 68);\n"
    "    border-radius: 0px;\n"
    "}\n"
    "QPushButton:hover {\n"
    "    background-color: rgb(18, 103, 106);\n"
    "}")
            self.buttonsub.setObjectName("buttonsub")
            self.buttonmult = QtWidgets.QPushButton(self.centralwidget)
            self.buttonmult.setGeometry(QtCore.QRect(240, 300, 81, 81))
            self.buttonmult.setMinimumSize(QtCore.QSize(81, 81))
            self.buttonmult.setMaximumSize(QtCore.QSize(81, 81))
            font = QtGui.QFont()
            font.setPointSize(20)
            self.buttonmult.setFont(font)
            self.buttonmult.setStyleSheet("QPushButton {\n"
    "    color: #ffffff;\n"
    "    background-color: rgb(12, 66, 68);\n"
    "    border-radius: 0px;\n"
    "}\n"
    "QPushButton:hover {\n"
    "    background-color: rgb(18, 103, 106);\n"
    "}")
            self.buttonmult.setObjectName("buttonmult")
            self.buttondiv = QtWidgets.QPushButton(self.centralwidget)
            self.buttondiv.setGeometry(QtCore.QRect(240, 380, 81, 81))
            self.buttondiv.setMinimumSize(QtCore.QSize(81, 81))
            self.buttondiv.setMaximumSize(QtCore.QSize(81, 81))
            font = QtGui.QFont()
            font.setPointSize(20)
            self.buttondiv.setFont(font)
            self.buttondiv.setStyleSheet("QPushButton {\n"
    "    color: #ffffff;\n"
    "    background-color: rgb(12, 66, 68);\n"
    "    border-radius: 0px;\n"
    "}\n"
    "QPushButton:hover {\n"
    "    background-color: rgb(18, 103, 106);\n"
    "}")
            self.buttondiv.setObjectName("buttondiv")
            self.buttonequally = QtWidgets.QPushButton(self.centralwidget)
            self.buttonequally.setGeometry(QtCore.QRect(160, 460, 162, 81))
            self.buttonequally.setMinimumSize(QtCore.QSize(162, 81))
            self.buttonequally.setMaximumSize(QtCore.QSize(162, 81))
            font = QtGui.QFont()
            font.setPointSize(20)
            self.buttonequally.setFont(font)
            self.buttonequally.setStyleSheet("QPushButton {\n"
    "    color: #ffffff;\n"
    "    background-color: rgb(41, 174, 161);\n"
    "    border-radius: 0px;\n"
    "}\n"
    "\n"
    "QPushButton:hover {\n"
    "    background-color: rgb(31, 135, 125);\n"
    "}")
            self.buttonequally.setObjectName("buttonequally")
            self.history = QtWidgets.QLabel(self.centralwidget)
            self.history.setGeometry(QtCore.QRect(50, 20, 261, 20))
            font = QtGui.QFont()
            font.setPointSize(13)
            self.history.setFont(font)
            self.history.setStyleSheet("color: rgb(34, 187, 187);")
            self.history.setText("")
            self.history.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
            self.history.setObjectName("history")
            self.buttonprocent = QtWidgets.QPushButton(self.centralwidget)
            self.buttonprocent.setGeometry(QtCore.QRect(80, 140, 81, 81))
            self.buttonprocent.setMinimumSize(QtCore.QSize(81, 81))
            self.buttonprocent.setMaximumSize(QtCore.QSize(81, 81))
            font = QtGui.QFont()
            font.setPointSize(20)
            self.buttonprocent.setFont(font)
            self.buttonprocent.setStyleSheet("QPushButton {\n"
    "    color: #ffffff;\n"
    "    background-color: rgb(5, 15, 17);\n"
    "    border-radius: 0px;\n"
    "}\n"
    "\n"
    "QPushButton:hover {\n"
    "    \n"
    "    background-color: rgb(63, 63, 63);\n"
    "}")
            self.buttonprocent.setObjectName("buttonprocent")
            MainWindow.setCentralWidget(self.centralwidget)
    
            self.retranslateUi(MainWindow)
            QtCore.QMetaObject.connectSlotsByName(MainWindow)
    
        def retranslateUi(self, MainWindow):
            _translate = QtCore.QCoreApplication.translate
            MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
            self.button7.setText(_translate("MainWindow", "7"))
            self.button8.setText(_translate("MainWindow", "8"))
            self.button9.setText(_translate("MainWindow", "9"))
            self.button4.setText(_translate("MainWindow", "4"))
            self.button5.setText(_translate("MainWindow", "5"))
            self.button6.setText(_translate("MainWindow", "6"))
            self.buttonpoint.setText(_translate("MainWindow", "."))
            self.button0.setText(_translate("MainWindow", "0"))
            self.buttonc.setText(_translate("MainWindow", "с"))
            self.button1.setText(_translate("MainWindow", "1"))
            self.button2.setText(_translate("MainWindow", "2"))
            self.button3.setText(_translate("MainWindow", "3"))
            self.buttonbackspace.setText(_translate("MainWindow", "<"))
            self.buttonadd.setText(_translate("MainWindow", "+"))
            self.buttonsub.setText(_translate("MainWindow", "-"))
            self.buttonmult.setText(_translate("MainWindow", "*"))
            self.buttondiv.setText(_translate("MainWindow", "/"))
            self.buttonequally.setText(_translate("MainWindow", "="))
            self.buttonprocent.setText(_translate("MainWindow", "%"))
    
    
    class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
        def __init__(self):
            super().__init__()
            self.setupUi(self)
    
            self.button0.clicked.connect(lambda: self.write_number(self.button0.text()))
            self.button1.clicked.connect(lambda: self.write_number(self.button1.text()))
            self.button2.clicked.connect(lambda: self.write_number(self.button2.text()))
            self.button3.clicked.connect(lambda: self.write_number(self.button3.text()))
            self.button4.clicked.connect(lambda: self.write_number(self.button4.text()))
            self.button5.clicked.connect(lambda: self.write_number(self.button5.text()))
            self.button6.clicked.connect(lambda: self.write_number(self.button6.text()))
            self.button7.clicked.connect(lambda: self.write_number(self.button7.text()))
            self.button8.clicked.connect(lambda: self.write_number(self.button8.text()))
            self.button9.clicked.connect(lambda: self.write_number(self.button9.text()))
            self.buttonpoint.clicked.connect(lambda: self.write_number(self.buttonpoint.text()))
            self.buttonadd.clicked.connect(lambda: self.write_number(self.buttonadd.text()))
            self.buttonsub.clicked.connect(lambda: self.write_number(self.buttonsub.text()))
            self.buttondiv.clicked.connect(lambda: self.write_number(self.buttondiv.text()))
            self.buttonmult.clicked.connect(lambda: self.write_number(self.buttonmult.text()))
            self.buttonprocent.clicked.connect(lambda: self.write_number(self.buttonprocent.text()))
            self.buttonequally.clicked.connect(self.answer)
            self.buttonc.clicked.connect(self.clean)
            self.buttonbackspace.clicked.connect(self.del_last)
    
    
    # +++ vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
        def write_number(self, number):
            text = self.input_data.text()
     
            if number == '%':                                                         # !!!
                p = ''
                for i, s in enumerate(text[::-1]):
                    if s in '0123456789':
                        p = f'{s}{p}'
                    else:
                        p = f'{float(text[:-i-1]) / 100 * float(p)}'
                        text = f'{text[:-i]}{p}'
                        break
            
            if text == '0':
                self.input_data.setText(number)
            if number == '%':                                                         # !!!
                self.input_data.setText(text)
            else:
                self.input_data.setText(text + number)
    
        def del_last(self):
            text = self.input_data.text()                                             # +++
            if not text:
                self.input_data.setText('0')
            else:
                text = text[:-1]
                self.input_data.setText(text)
    # +++ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^            
                
    
        def clean(self):
            self.input_data.setText('0')
    
        def answer(self):
            #print(f'{self.input_data.text()}') 
            result = eval(self.input_data.text())
            self.input_data.setText(str(result))
    
    
    
    if __name__ == "__main__":
        import sys
        app = QtWidgets.QApplication(sys.argv)
        w = MainWindow()
        w.show()
        sys.exit(app.exec_())
    

    在此处输入图像描述

    在此处输入图像描述

    在此处输入图像描述

    • 1

相关问题

  • 是否可以以某种方式自定义 QTabWidget?

  • telebot.anihelper.ApiException 错误

  • Python。检查一个数字是否是 3 的幂。输出 无

  • 解析多个响应

  • 交换两个数组的元素,以便它们的新内容也反转

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5