1.界面设计
2.代码展示
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'test.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow_0(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(867, 473)
MainWindow.setStyleSheet("background-color: rgb(255, 43, 92);")
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setEnabled(True)
self.centralwidget.setObjectName("centralwidget")
self.gridLayout_2 = QtWidgets.QGridLayout(self.centralwidget)
self.gridLayout_2.setObjectName("gridLayout_2")
self.verticalLayout = QtWidgets.QVBoxLayout()
self.verticalLayout.setObjectName("verticalLayout")
self.textBrowser = QtWidgets.QTextBrowser(self.centralwidget)
self.textBrowser.setStyleSheet("font-size:60px;\n"
"background-color: rgb(80, 191, 208);")
self.textBrowser.setObjectName("textBrowser")
self.verticalLayout.addWidget(self.textBrowser)
self.gridLayout = QtWidgets.QGridLayout()
self.gridLayout.setSizeConstraint(QtWidgets.QLayout.SetDefaultConstraint)
self.gridLayout.setContentsMargins(0, 0, 0, 0)
self.gridLayout.setHorizontalSpacing(7)
self.gridLayout.setObjectName("gridLayout")
self.pushButton_03 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_03.setMinimumSize(QtCore.QSize(0, 80))
self.pushButton_03.setStyleSheet("font-size:60px;\n"
"border-radius:12px;\n"
"background-color: rgb(185, 195, 255);")
self.pushButton_03.setObjectName("pushButton_03")
self.gridLayout.addWidget(self.pushButton_03, 0, 3, 1, 1)
self.pushButton_pr = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_pr.setMinimumSize(QtCore.QSize(0, 80))
self.pushButton_pr.setStyleSheet("font-size:60px;\n"
"border-radius:12px;\n"
"background-color: rgb(185, 195, 255);")
self.pushButton_pr.setObjectName("pushButton_pr")
self.gridLayout.addWidget(self.pushButton_pr, 3, 0, 1, 1)
self.pushButton_07 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_07.setMinimumSize(QtCore.QSize(0, 80))
self.pushButton_07.setStyleSheet("font-size:60px;\n"
"border-radius:12px;\n"
"background-color: rgb(185, 195, 255);")
self.pushButton_07.setObjectName("pushButton_07")
self.gridLayout.addWidget(self.pushButton_07, 2, 0, 1, 1)
self.pushButton_09 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_09.setMinimumSize(QtCore.QSize(0, 80))
self.pushButton_09.setStyleSheet("font-size:60px;\n"
"border-radius:12px;\n"
"background-color: rgb(185, 195, 255);")
self.pushButton_09.setObjectName("pushButton_09")
self.gridLayout.addWidget(self.pushButton_09, 2, 3, 1, 1)
self.pushButton_04 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_04.setMinimumSize(QtCore.QSize(0, 80))
self.pushButton_04.setStyleSheet("font-size:60px;\n"
"border-radius:12px;\n"
"background-color: rgb(185, 195, 255);")
self.pushButton_04.setObjectName("pushButton_04")
self.gridLayout.addWidget(self.pushButton_04, 1, 0, 1, 1)
self.pushButton_01 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_01.setEnabled(True)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.pushButton_01.sizePolicy().hasHeightForWidth())
self.pushButton_01.setSizePolicy(sizePolicy)
self.pushButton_01.setMinimumSize(QtCore.QSize(0, 80))
self.pushButton_01.setMaximumSize(QtCore.QSize(16777215, 16777215))
self.pushButton_01.setBaseSize(QtCore.QSize(0, 0))
self.pushButton_01.setStyleSheet("font-size:60px;\n"
"border-radius:12px;\n"
"background-color: rgb(185, 195, 255);")
self.pushButton_01.setObjectName("pushButton_01")
self.gridLayout.addWidget(self.pushButton_01, 0, 0, 1, 1)
self.pushButton_02 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_02.setMinimumSize(QtCore.QSize(0, 80))
self.pushButton_02.setStyleSheet("font-size:60px;\n"
"border-radius:12px;\n"
"background-color: rgb(185, 195, 255);")
self.pushButton_02.setObjectName("pushButton_02")
self.gridLayout.addWidget(self.pushButton_02, 0, 2, 1, 1)
self.pushButton_05 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_05.setMinimumSize(QtCore.QSize(0, 80))
self.pushButton_05.setStyleSheet("font-size:60px;\n"
"border-radius:12px;\n"
"background-color: rgb(185, 195, 255);")
self.pushButton_05.setObjectName("pushButton_05")
self.gridLayout.addWidget(self.pushButton_05, 1, 2, 1, 1)
self.pushButton_08 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_08.setMinimumSize(QtCore.QSize(0, 80))
self.pushButton_08.setStyleSheet("font-size:60px;\n"
"border-radius:12px;\n"
"background-color: rgb(185, 195, 255);")
self.pushButton_08.setObjectName("pushButton_08")
self.gridLayout.addWidget(self.pushButton_08, 2, 2, 1, 1)
self.pushButton_00 = QtWidgets.QPushButton(self.centralwidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.pushButton_00.sizePolicy().hasHeightForWidth())
self.pushButton_00.setSizePolicy(sizePolicy)
self.pushButton_00.setMinimumSize(QtCore.QSize(0, 80))
self.pushButton_00.setMouseTracking(False)
self.pushButton_00.setTabletTracking(False)
self.pushButton_00.setStyleSheet("font-size:60px;\n"
"border-radius:12px;\n"
"background-color: rgb(185, 195, 255);")
self.pushButton_00.setObjectName("pushButton_00")
self.gridLayout.addWidget(self.pushButton_00, 3, 2, 1, 1)
self.pushButton_06 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_06.setMinimumSize(QtCore.QSize(0, 80))
self.pushButton_06.setStyleSheet("font-size:60px;\n"
"border-radius:12px;\n"
"background-color: rgb(185, 195, 255);")
self.pushButton_06.setObjectName("pushButton_06")
self.gridLayout.addWidget(self.pushButton_06, 1, 3, 1, 1)
self.pushButton_point = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_point.setMinimumSize(QtCore.QSize(0, 80))
self.pushButton_point.setStyleSheet("font-size:60px;\n"
"border-radius:12px;\n"
"background-color: rgb(185, 195, 255);")
self.pushButton_point.setObjectName("pushButton_point")
self.gridLayout.addWidget(self.pushButton_point, 3, 3, 1, 1)
self.pushButton_sub = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_sub.setMinimumSize(QtCore.QSize(0, 80))
self.pushButton_sub.setStyleSheet("font-size:60px;\n"
"border-radius:12px;\n"
"background-color: rgb(185, 195, 255);")
self.pushButton_sub.setObjectName("pushButton_sub")
self.gridLayout.addWidget(self.pushButton_sub, 1, 4, 1, 1)
self.pushButton_add = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_add.setMinimumSize(QtCore.QSize(0, 80))
self.pushButton_add.setStyleSheet("font-size:60px;\n"
"border-radius:12px;\n"
"background-color: rgb(185, 195, 255);")
self.pushButton_add.setObjectName("pushButton_add")
self.gridLayout.addWidget(self.pushButton_add, 0, 4, 1, 1)
self.pushButton_mul = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_mul.setMinimumSize(QtCore.QSize(0, 80))
self.pushButton_mul.setStyleSheet("font-size:60px;\n"
"border-radius:12px;\n"
"background-color: rgb(185, 195, 255);")
self.pushButton_mul.setObjectName("pushButton_mul")
self.gridLayout.addWidget(self.pushButton_mul, 2, 4, 1, 1)
self.pushButton_div = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_div.setMinimumSize(QtCore.QSize(0, 80))
self.pushButton_div.setStyleSheet("font-size:60px;\n"
"border-radius:12px;\n"
"background-color: rgb(185, 195, 255);")
self.pushButton_div.setObjectName("pushButton_div")
self.gridLayout.addWidget(self.pushButton_div, 3, 4, 1, 1)
self.verticalLayout.addLayout(self.gridLayout)
self.verticalLayout.setStretch(0, 1)
self.verticalLayout.setStretch(1, 2)
self.gridLayout_2.addLayout(self.verticalLayout, 0, 0, 1, 1)
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
self.pushButton_01.clicked.connect(lambda:self.view_0('1'))
self.pushButton_02.clicked.connect(lambda:self.view_0('2'))
self.pushButton_03.clicked.connect(lambda:self.view_0('3'))
self.pushButton_04.clicked.connect(lambda:self.view_0('4'))
self.pushButton_05.clicked.connect(lambda:self.view_0('5'))
self.pushButton_06.clicked.connect(lambda:self.view_0('6'))
self.pushButton_07.clicked.connect(lambda:self.view_0('7'))
self.pushButton_08.clicked.connect(lambda:self.view_0('8'))
self.pushButton_09.clicked.connect(lambda:self.view_0('9'))
self.pushButton_00.clicked.connect(lambda:self.view_0('0'))
self.pushButton_add.clicked.connect(lambda:self.view_0('+')) # +
self.pushButton_sub.clicked.connect(lambda:self.view_0("-")) # -
self.pushButton_mul.clicked.connect(lambda:self.view_0('*')) # *
self.pushButton_div.clicked.connect(lambda:self.view_0('/')) # %
self.pushButton_pr.clicked.connect(lambda:self.result()) # =
self.pushButton_point.clicked.connect(lambda:self.view_0('.')) # .
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "简易计算器"))
self.pushButton_03.setText(_translate("MainWindow", "3"))
self.pushButton_pr.setText(_translate("MainWindow", "="))
self.pushButton_07.setText(_translate("MainWindow", "7"))
self.pushButton_09.setText(_translate("MainWindow", "9"))
self.pushButton_04.setText(_translate("MainWindow", "4"))
self.pushButton_01.setText(_translate("MainWindow", "1"))
self.pushButton_02.setText(_translate("MainWindow", "2"))
self.pushButton_05.setText(_translate("MainWindow", "5"))
self.pushButton_08.setText(_translate("MainWindow", "8"))
self.pushButton_00.setText(_translate("MainWindow", "0"))
self.pushButton_06.setText(_translate("MainWindow", "6"))
self.pushButton_point.setText(_translate("MainWindow", "."))
self.pushButton_sub.setText(_translate("MainWindow", "-"))
self.pushButton_add.setText(_translate("MainWindow", "+"))
self.pushButton_mul.setText(_translate("MainWindow", "×"))
self.pushButton_div.setText(_translate("MainWindow", "÷"))
self.nn_0 = ''
self.n00 = 0
def view_0(self, nn_0):
self.nn_0 += nn_0
if self.n00 ==1:
self.nn_0 = ''
self.n00 = 0
self.textBrowser.setText(self.nn_0)
def result(self):
re_nu = self.textBrowser.toPlainText() # 获取文本内数据
# print(float(eval(re_nu)))
re_nu = float(eval(re_nu))
# print(type(re_nu))
self.n00 = 1
self.textBrowser.setText(str(re_nu))
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow_0()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
3.效果展示
4.代码问题总结
4.1可根据需要添加其他元素。
4.2计算器运行一个公式结束后,因未设计清除按钮,需要点一下数字(0-9)随机一个,用以清空计算框的结果,然后就可以继续计算下一个公式。
4.3代码只是最简单的计算器,更多功能,请各位自行开发。