/
sxfour
/
python_all_projects
Обзор
Документация
Войти
/
sxfour
/
python_all_projects
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
python_pyqt5_calcForm/calc.py
238 строк
10 KB
Egor Levashov
Add files via upload
27 апр 2024, 09:37
Не верифицирован
27 апр 2024, 09:37
0311fbb
Код
Авторство
О чём код?
# Python 3.11, Windows 10 64x, UTF-8 from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.QtWidgets import QMessageBox class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(220, 359) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.label_result = QtWidgets.QLabel(self.centralwidget) self.label_result.setGeometry(QtCore.QRect(0, 0, 221, 51)) font = QtGui.QFont() font.setPointSize(12) font.setBold(True) font.setItalic(False) font.setUnderline(False) font.setWeight(75) self.label_result.setFont(font) self.label_result.setStyleSheet("background-color: rgb(163, 163, 163);\n" "color: rgb(255, 255, 255);") self.label_result.setObjectName("label_result") self.btn_zero = QtWidgets.QPushButton(self.centralwidget) self.btn_zero.setGeometry(QtCore.QRect(150, 240, 60, 50)) font = QtGui.QFont() font.setPointSize(12) font.setBold(True) font.setWeight(75) self.btn_zero.setFont(font) self.btn_zero.setStyleSheet("background-color: rgb(163, 163, 163);") self.btn_zero.setObjectName("btn_zero") self.btn_result = QtWidgets.QPushButton(self.centralwidget) self.btn_result.setGeometry(QtCore.QRect(80, 300, 131, 50)) font = QtGui.QFont() font.setPointSize(14) font.setBold(True) font.setWeight(75) self.btn_result.setFont(font) self.btn_result.setStyleSheet("background-color: rgb(163, 163, 163);") self.btn_result.setObjectName("btn_result") self.btn_1 = QtWidgets.QPushButton(self.centralwidget) self.btn_1.setGeometry(QtCore.QRect(10, 180, 60, 50)) font = QtGui.QFont() font.setPointSize(12) font.setBold(True) font.setWeight(75) self.btn_1.setFont(font) self.btn_1.setStyleSheet("background-color: rgb(163, 163, 163);") self.btn_1.setObjectName("btn_1") self.btn_2 = QtWidgets.QPushButton(self.centralwidget) self.btn_2.setGeometry(QtCore.QRect(80, 180, 60, 50)) font = QtGui.QFont() font.setPointSize(12) font.setBold(True) font.setWeight(75) self.btn_2.setFont(font) self.btn_2.setStyleSheet("background-color: rgb(163, 163, 163);") self.btn_2.setObjectName("btn_2") self.btn_3 = QtWidgets.QPushButton(self.centralwidget) self.btn_3.setGeometry(QtCore.QRect(150, 180, 60, 50)) font = QtGui.QFont() font.setPointSize(12) font.setBold(True) font.setWeight(75) self.btn_3.setFont(font) self.btn_3.setStyleSheet("background-color: rgb(163, 163, 163);") self.btn_3.setObjectName("btn_3") self.btn_4 = QtWidgets.QPushButton(self.centralwidget) self.btn_4.setGeometry(QtCore.QRect(150, 120, 60, 50)) font = QtGui.QFont() font.setPointSize(12) font.setBold(True) font.setWeight(75) self.btn_4.setFont(font) self.btn_4.setStyleSheet("background-color: rgb(163, 163, 163);") self.btn_4.setObjectName("btn_4") self.btn_5 = QtWidgets.QPushButton(self.centralwidget) self.btn_5.setGeometry(QtCore.QRect(80, 120, 60, 50)) font = QtGui.QFont() font.setPointSize(12) font.setBold(True) font.setWeight(75) self.btn_5.setFont(font) self.btn_5.setStyleSheet("background-color: rgb(163, 163, 163);") self.btn_5.setObjectName("btn_5") self.btn_6 = QtWidgets.QPushButton(self.centralwidget) self.btn_6.setGeometry(QtCore.QRect(10, 120, 60, 50)) font = QtGui.QFont() font.setPointSize(12) font.setBold(True) font.setWeight(75) self.btn_6.setFont(font) self.btn_6.setStyleSheet("background-color: rgb(163, 163, 163);") self.btn_6.setObjectName("btn_6") self.btn_7 = QtWidgets.QPushButton(self.centralwidget) self.btn_7.setGeometry(QtCore.QRect(150, 60, 60, 50)) font = QtGui.QFont() font.setPointSize(12) font.setBold(True) font.setWeight(75) self.btn_7.setFont(font) self.btn_7.setStyleSheet("background-color: rgb(163, 163, 163);") self.btn_7.setObjectName("btn_7") self.btn_8 = QtWidgets.QPushButton(self.centralwidget) self.btn_8.setGeometry(QtCore.QRect(80, 60, 60, 50)) font = QtGui.QFont() font.setPointSize(12) font.setBold(True) font.setWeight(75) self.btn_8.setFont(font) self.btn_8.setStyleSheet("background-color: rgb(163, 163, 163);") self.btn_8.setObjectName("btn_8") self.btn_9 = QtWidgets.QPushButton(self.centralwidget) self.btn_9.setGeometry(QtCore.QRect(10, 60, 60, 50)) font = QtGui.QFont() font.setPointSize(12) font.setBold(True) font.setWeight(75) self.btn_9.setFont(font) self.btn_9.setStyleSheet("background-color: rgb(163, 163, 163);") self.btn_9.setObjectName("btn_9") self.btn_plus = QtWidgets.QPushButton(self.centralwidget) self.btn_plus.setGeometry(QtCore.QRect(10, 240, 60, 50)) font = QtGui.QFont() font.setPointSize(13) font.setBold(True) font.setWeight(75) self.btn_plus.setFont(font) self.btn_plus.setStyleSheet("background-color: rgb(163, 163, 163);") self.btn_plus.setObjectName("btn_plus") self.btn_minus = QtWidgets.QPushButton(self.centralwidget) self.btn_minus.setGeometry(QtCore.QRect(80, 240, 60, 50)) font = QtGui.QFont() font.setPointSize(14) font.setBold(True) font.setWeight(75) self.btn_minus.setFont(font) self.btn_minus.setStyleSheet("background-color: rgb(163, 163, 163);") self.btn_minus.setObjectName("btn_minus") self.btn_minus_2 = QtWidgets.QPushButton(self.centralwidget) self.btn_minus_2.setGeometry(QtCore.QRect(10, 300, 60, 50)) font = QtGui.QFont() font.setPointSize(14) font.setBold(True) font.setWeight(75) self.btn_minus_2.setFont(font) self.btn_minus_2.setStyleSheet("background-color: rgb(163, 163, 163);") self.btn_minus_2.setObjectName("btn_minus_2") MainWindow.setCentralWidget(self.centralwidget) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) self.add_functions() self.is_equal = False def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "Calc")) self.label_result.setText(_translate("MainWindow", "0")) self.btn_zero.setText(_translate("MainWindow", "0")) self.btn_result.setText(_translate("MainWindow", "=")) self.btn_1.setText(_translate("MainWindow", "1")) self.btn_2.setText(_translate("MainWindow", "2")) self.btn_3.setText(_translate("MainWindow", "3")) self.btn_4.setText(_translate("MainWindow", "4")) self.btn_5.setText(_translate("MainWindow", "5")) self.btn_6.setText(_translate("MainWindow", "6")) self.btn_7.setText(_translate("MainWindow", "7")) self.btn_8.setText(_translate("MainWindow", "8")) self.btn_9.setText(_translate("MainWindow", "9")) self.btn_plus.setText(_translate("MainWindow", "+")) self.btn_minus.setText(_translate("MainWindow", "-")) self.btn_minus_2.setText(_translate("MainWindow", "/")) def add_functions(self): self.btn_zero.clicked.connect(lambda: self.write_number(self.btn_zero.text())) self.btn_1.clicked.connect(lambda: self.write_number(self.btn_1.text())) self.btn_2.clicked.connect(lambda: self.write_number(self.btn_2.text())) self.btn_3.clicked.connect(lambda: self.write_number(self.btn_3.text())) self.btn_4.clicked.connect(lambda: self.write_number(self.btn_4.text())) self.btn_5.clicked.connect(lambda: self.write_number(self.btn_5.text())) self.btn_6.clicked.connect(lambda: self.write_number(self.btn_6.text())) self.btn_7.clicked.connect(lambda: self.write_number(self.btn_7.text())) self.btn_8.clicked.connect(lambda: self.write_number(self.btn_8.text())) self.btn_9.clicked.connect(lambda: self.write_number(self.btn_9.text())) self.btn_plus.clicked.connect(lambda: self.write_number(self.btn_plus.text())) self.btn_minus.clicked.connect(lambda: self.write_number(self.btn_minus.text())) self.btn_minus_2.clicked.connect(lambda: self.write_number(self.btn_minus_2.text())) self.btn_result.clicked.connect(lambda: self.results()) def write_number(self, number): if self.label_result.text() == "0" or self.is_equal: self.label_result.setText(number) self.is_equal = False else: self.label_result.setText(self.label_result.text() + number) def results(self): if not self.is_equal: res = eval(self.label_result.text()) self.label_result.setText("Result: " + str(res)) self.is_equal = True else: error = QMessageBox() error.setWindowTitle('Error') error.setText('This action not work') error.setIcon(QMessageBox.Warning) error.setStandardButtons(QMessageBox.Reset | QMessageBox.Cancel | QMessageBox.Ok) error.setDefaultButton(QMessageBox.Ok) error.setInformativeText('Double exec dont load') error.setDetailedText('Details : ') error.buttonClicked.connect(self.popup_action) error.exec_() def popup_action(self, btn): if btn.text() == 'Ok': print('Ok') elif btn.text() == 'Reset': self.label_result.setText('') self.is_equal = False if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) MainWindow = QtWidgets.QMainWindow() ui = Ui_MainWindow() ui.setupUi(MainWindow) MainWindow.show() sys.exit(app.exec_())