# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'test.ui' # # Created by: PyQt5 UI code generator 5.11.3 # # WARNING! All changes made in this file will be lost! from PyQt5 import QtCore, QtWidgets class Ui_MainWindow(object): content = '' symbol = ['+', '-', '×', '÷', '%', '.', '='] def setupUi(self, MainWindow): MainWindow.setObjectName("Calculator") MainWindow.resize(360, 460) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.centralwidget.setStyleSheet(''' QPushButton{ font-size: 15px; background: rgba(255, 255, 255, 0.7); border-radius:5px; } QTextBrowser{ font-size: 25px; background: rgba(255, 255, 255, 0.7); border-radius:10px; text-align:right; margin-right:0px; } ''') self.btn1 = QtWidgets.QPushButton(self.centralwidget) self.btn1.setGeometry(QtCore.QRect(50, 180, 51, 51)) self.btn1.setObjectName("btn1") self.btn2 = QtWidgets.QPushButton(self.centralwidget) self.btn2.setGeometry(QtCore.QRect(120, 180, 51, 51)) self.btn2.setObjectName("btn2") self.btn3 = QtWidgets.QPushButton(self.centralwidget) self.btn3.setGeometry(QtCore.QRect(190, 180, 51, 51)) self.btn3.setObjectName("btn3") self.btn4 = QtWidgets.QPushButton(self.centralwidget) self.btn4.setGeometry(QtCore.QRect(50, 240, 51, 51)) self.btn4.setObjectName("btn4") self.btn5 = QtWidgets.QPushButton(self.centralwidget) self.btn5.setGeometry(QtCore.QRect(120, 240, 51, 51)) self.btn5.setObjectName("btn5") self.btn6 = QtWidgets.QPushButton(self.centralwidget) self.btn6.setGeometry(QtCore.QRect(190, 240, 51, 51)) self.btn6.setObjectName("btn6") self.btn7 = QtWidgets.QPushButton(self.centralwidget) self.btn7.setGeometry(QtCore.QRect(50, 300, 51, 51)) self.btn7.setObjectName("btn7") self.btn8 = QtWidgets.QPushButton(self.centralwidget) self.btn8.setGeometry(QtCore.QRect(120, 300, 51, 51)) self.btn8.setObjectName("btn8") self.btn9 = QtWidgets.QPushButton(self.centralwidget) self.btn9.setGeometry(QtCore.QRect(190, 300, 51, 51)) self.btn9.setObjectName("btn9") self.btn0 = QtWidgets.QPushButton(self.centralwidget) self.btn0.setGeometry(QtCore.QRect(50, 360, 51, 51)) self.btn0.setObjectName("btn0") self.btn_double = QtWidgets.QPushButton(self.centralwidget) self.btn_double.setGeometry(QtCore.QRect(120, 360, 51, 51)) self.btn_double.setObjectName("btn_double") self.btn_mult = QtWidgets.QPushButton(self.centralwidget) self.btn_mult.setGeometry(QtCore.QRect(260, 180, 51, 51)) self.btn_mult.setObjectName("btn_mult") self.btn_sub = QtWidgets.QPushButton(self.centralwidget) self.btn_sub.setGeometry(QtCore.QRect(260, 240, 51, 51)) self.btn_sub.setObjectName("btn_sub") self.btn_equal = QtWidgets.QPushButton(self.centralwidget) self.btn_equal.setGeometry(QtCore.QRect(190, 360, 121, 51)) self.btn_equal.setObjectName("btn_equal") self.btn_add = QtWidgets.QPushButton(self.centralwidget) self.btn_add.setGeometry(QtCore.QRect(260, 300, 51, 51)) self.btn_add.setObjectName("btn_add") self.btn_back = QtWidgets.QPushButton(self.centralwidget) self.btn_back.setGeometry(QtCore.QRect(50, 120, 51, 51)) self.btn_back.setObjectName("btn_back") self.btn_clear = QtWidgets.QPushButton(self.centralwidget) self.btn_clear.setGeometry(QtCore.QRect(120, 120, 51, 51)) self.btn_clear.setObjectName("btn_clear") self.btn_percent = QtWidgets.QPushButton(self.centralwidget) self.btn_percent.setGeometry(QtCore.QRect(190, 120, 51, 51)) self.btn_percent.setObjectName("btn_percent") self.btn_division = QtWidgets.QPushButton(self.centralwidget) self.btn_division.setGeometry(QtCore.QRect(260, 120, 51, 51)) self.btn_division.setObjectName("btn_division") self.textBrowser = QtWidgets.QTextBrowser(self.centralwidget) self.textBrowser.setLayoutDirection(QtCore.Qt.RightToLeft) self.textBrowser.setGeometry(QtCore.QRect(50, 50, 261, 51)) self.textBrowser.setObjectName("textBrowser") MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 727, 23)) self.menubar.setObjectName("menubar") MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) self.btn0.clicked.connect(lambda: self.write(0)) self.btn1.clicked.connect(lambda: self.write(1)) self.btn2.clicked.connect(lambda: self.write(2)) self.btn3.clicked.connect(lambda: self.write(3)) self.btn4.clicked.connect(lambda: self.write(4)) self.btn5.clicked.connect(lambda: self.write(5)) self.btn6.clicked.connect(lambda: self.write(6)) self.btn7.clicked.connect(lambda: self.write(7)) self.btn8.clicked.connect(lambda: self.write(8)) self.btn9.clicked.connect(lambda: self.write(9)) self.btn_double.clicked.connect(lambda: self.write('.')) self.btn_mult.clicked.connect(lambda: self.write('×')) self.btn_sub.clicked.connect(lambda: self.write('-')) self.btn_equal.clicked.connect(self.calculater) self.btn_add.clicked.connect(lambda: self.write('+')) self.btn_back.clicked.connect(self.back) self.btn_clear.clicked.connect(self.clear) self.btn_percent.clicked.connect(lambda: self.write('%')) self.btn_division.clicked.connect(lambda: self.write('÷')) # 写入 def write(self, param): # 如果上一次和这一次输入的都是符号,则替换 if len(self.content) > 0 and (self.content[-1] in self.symbol) and (param in self.symbol): self.content = self.content[0:len(self.content) - 1] + str(param) # 排除第一位输入符号 elif len(self.content) == 0 and (param in self.symbol): pass else: self.content = self.content + str(param) self.textBrowser.setText(self.content) # 清空 def clear(self): self.content = "" self.textBrowser.setText("") # 后退一位 def back(self): self.content = self.content[0:len(self.content) - 1] self.textBrowser.setText(self.content) # 计算 def calculater(self): # 判断最后一位是不是运算符 if len(self.content) > 0 and (self.content[-1] in self.symbol): pass else: new_str = self.content.replace('×', '*') new_str = new_str.replace('÷', '/') self.content = self.content + '=' + str(eval(new_str)) self.textBrowser.setText(self.content) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) self.btn1.setText(_translate("MainWindow", "1")) self.btn2.setText(_translate("MainWindow", "2")) self.btn3.setText(_translate("MainWindow", "3")) self.btn4.setText(_translate("MainWindow", "4")) self.btn5.setText(_translate("MainWindow", "5")) self.btn6.setText(_translate("MainWindow", "6")) self.btn7.setText(_translate("MainWindow", "7")) self.btn8.setText(_translate("MainWindow", "8")) self.btn9.setText(_translate("MainWindow", "9")) self.btn0.setText(_translate("MainWindow", "0")) self.btn_double.setText(_translate("MainWindow", ".")) self.btn_mult.setText(_translate("MainWindow", "×")) self.btn_sub.setText(_translate("MainWindow", "-")) self.btn_equal.setText(_translate("MainWindow", "=")) self.btn_add.setText(_translate("MainWindow", "+")) self.btn_back.setText(_translate("MainWindow", "AC")) self.btn_clear.setText(_translate("MainWindow", "Clear")) self.btn_percent.setText(_translate("MainWindow", "%")) self.btn_division.setText(_translate("MainWindow", "÷")) import sys from PyQt5.QtWidgets import QApplication, QMainWindow if __name__ == '__main__': app = QApplication(sys.argv) MainWindow = QMainWindow() ui = Ui_MainWindow() ui.setupUi(MainWindow) MainWindow.show() sys.exit(app.exec_())
Python基于Qt平台的计算器源代码
原文链接:Python基于Qt平台的计算器源代码,转发请注明来源!
评论已关闭。