Advertisement
Chl_Snt

2-й уровень

Apr 19th, 2023 (edited)
934
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 10.07 KB | None | 0 0
  1. import math
  2. from PyQt5 import QtCore, QtGui, QtWidgets
  3.  
  4.  
  5. class Ui_MainWindow(object):
  6.     def setupUi(self, MainWindow):
  7.         MainWindow.setObjectName("MainWindow")
  8.         MainWindow.resize(800, 300)
  9.  
  10.         self.retranslateUi(MainWindow)
  11.         QtCore.QMetaObject.connectSlotsByName(MainWindow)
  12.  
  13.     def retranslateUi(self, MainWindow):
  14.         _translate = QtCore.QCoreApplication.translate
  15.         MainWindow.setWindowTitle(_translate("MainWindow", "Домашка"))
  16.  
  17.  
  18. class Window(QtWidgets.QMainWindow, Ui_MainWindow):
  19.     def __init__(self):
  20.         super().__init__()
  21.         self.setupUi(self)
  22.  
  23.         self.setWindowIcon(QtGui.QIcon("shapes.png"))
  24.         self.toolBar = QtWidgets.QToolBar(self)
  25.         self.toolBar.setObjectName("toolBar")
  26.         self.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)
  27.         self.pira_btn = QtWidgets.QAction(QtGui.QIcon("pira.png"), "Пирамида", self)
  28.         self.toolBar.addAction(self.pira_btn)
  29.         self.sphere_btn = QtWidgets.QAction(QtGui.QIcon("sphere.png"), "Круг", self)
  30.         self.toolBar.addAction(self.sphere_btn)
  31.         self.para_btn = QtWidgets.QAction(QtGui.QIcon("para.png"), "Параллелепипед", self)
  32.         self.toolBar.addAction(self.para_btn)
  33.  
  34.  
  35.         self.pira_btn.triggered.connect(self.pira)
  36.         self.sphere_btn.triggered.connect(self.sphere)
  37.         self.para_btn.triggered.connect(self.para)
  38.  
  39.     def pira(self):
  40.         # Создание кнопок
  41.         self.centralwidget = QtWidgets.QWidget(self)
  42.         self.centralwidget.setObjectName("centralwidget")
  43.         self.label = QtWidgets.QLabel(self.centralwidget)
  44.         self.label.setGeometry(QtCore.QRect(60, 70, 161, 21))
  45.         self.label.setStyleSheet("font: 16pt \"Calibri\";")
  46.         self.label.setObjectName("label")
  47.         self.ai = QtWidgets.QLineEdit(self.centralwidget)
  48.         self.ai.setGeometry(QtCore.QRect(60, 100, 151, 31))
  49.         self.ai.setObjectName("ai")
  50.         self.label_2 = QtWidgets.QLabel(self.centralwidget)
  51.         self.label_2.setGeometry(QtCore.QRect(240, 70, 161, 21))
  52.         self.label_2.setStyleSheet("font: 16pt \"Calibri\";")
  53.         self.label_2.setObjectName("label_2")
  54.         self.bi = QtWidgets.QLineEdit(self.centralwidget)
  55.         self.bi.setGeometry(QtCore.QRect(240, 100, 151, 31))
  56.         self.bi.setObjectName("bi")
  57.         self.label_3 = QtWidgets.QLabel(self.centralwidget)
  58.         self.label_3.setGeometry(QtCore.QRect(140, 150, 161, 21))
  59.         self.label_3.setStyleSheet("font: 16pt \"Calibri\";")
  60.         self.label_3.setObjectName("label_3")
  61.         self.hi = QtWidgets.QLineEdit(self.centralwidget)
  62.         self.hi.setGeometry(QtCore.QRect(140, 180, 151, 31))
  63.         self.hi.setObjectName("hi")
  64.         self.equal = QtWidgets.QPushButton(self.centralwidget)
  65.         self.equal.setGeometry(QtCore.QRect(410, 130, 111, 41))
  66.         self.equal.setStyleSheet("font: 24pt")
  67.         self.equal.setObjectName("equal")
  68.         self.label_4 = QtWidgets.QLabel(self.centralwidget)
  69.         self.label_4.setGeometry(QtCore.QRect(570, 50, 181, 81))
  70.         self.label_4.setStyleSheet("font: 16pt \"Calibri\";")
  71.         self.label_4.setScaledContents(False)
  72.         self.label_4.setWordWrap(True)
  73.         self.label_4.setObjectName("label_4")
  74.         self.answer = QtWidgets.QLabel(self.centralwidget)
  75.         self.answer.setGeometry(QtCore.QRect(580, 130, 211, 41))
  76.         self.answer.setStyleSheet("font: 16pt \"Calibri\";")
  77.         self.answer.setText("")
  78.         self.answer.setObjectName("answer")
  79.         self.setCentralWidget(self.centralwidget)
  80.  
  81.         # Транслирование надписей
  82.         _translate = QtCore.QCoreApplication.translate
  83.         self.label.setText(_translate("MainWindow", "Введи сторону A"))
  84.         self.label_2.setText(_translate("MainWindow", "Введи сторону B"))
  85.         self.label_3.setText(_translate("MainWindow", "Введи высоту H"))
  86.         self.equal.setText(_translate("MainWindow", "="))
  87.         self.label_4.setText(_translate("MainWindow", "Согласно формуле V=⅓SH, объем пирамиды равен"))
  88.  
  89.         # Действия
  90.         self.equal.clicked.connect(self.math)
  91.  
  92.     def sphere(self):
  93.         # Создание кнопок
  94.         self.centralwidget = QtWidgets.QWidget(self)
  95.         self.centralwidget.setObjectName("centralwidget")
  96.         self.label_2 = QtWidgets.QLabel(self.centralwidget)
  97.         self.label_2.setGeometry(QtCore.QRect(170, 100, 161, 21))
  98.         self.label_2.setStyleSheet("font: 16pt \"Calibri\";")
  99.         self.label_2.setObjectName("label_2")
  100.         self.ri = QtWidgets.QLineEdit(self.centralwidget)
  101.         self.ri.setGeometry(QtCore.QRect(170, 130, 151, 31))
  102.         self.ri.setObjectName("ri")
  103.         self.equal = QtWidgets.QPushButton(self.centralwidget)
  104.         self.equal.setGeometry(QtCore.QRect(340, 120, 111, 41))
  105.         self.equal.setStyleSheet("font: 24pt")
  106.         self.equal.setObjectName("equal")
  107.         self.label_4 = QtWidgets.QLabel(self.centralwidget)
  108.         self.label_4.setGeometry(QtCore.QRect(500, 40, 181, 81))
  109.         self.label_4.setStyleSheet("font: 16pt \"Calibri\";")
  110.         self.label_4.setScaledContents(False)
  111.         self.label_4.setWordWrap(True)
  112.         self.label_4.setObjectName("label_4")
  113.         self.answer = QtWidgets.QLabel(self.centralwidget)
  114.         self.answer.setGeometry(QtCore.QRect(470, 120, 211, 41))
  115.         self.answer.setStyleSheet("font: 16pt \"Calibri\";")
  116.         self.answer.setText("")
  117.         self.answer.setObjectName("answer")
  118.         self.setCentralWidget(self.centralwidget)
  119.  
  120.         # Транслирование надписей
  121.         _translate = QtCore.QCoreApplication.translate
  122.         self.label_2.setText(_translate("MainWindow", "Введи радиус R"))
  123.         self.equal.setText(_translate("MainWindow", "="))
  124.         self.label_4.setText(_translate("MainWindow", "Согласно формуле V=1⅓πR³, объем сферы равен"))
  125.         self.toolBar.setWindowTitle(_translate("MainWindow", "toolBar"))
  126.  
  127.         # Действия
  128.         self.equal.clicked.connect(self.math)
  129.  
  130.     def para(self):
  131.         # Создание кнопок
  132.         self.centralwidget = QtWidgets.QWidget(self)
  133.         self.centralwidget.setObjectName("centralwidget")
  134.         self.label = QtWidgets.QLabel(self.centralwidget)
  135.         self.label.setGeometry(QtCore.QRect(60, 70, 161, 21))
  136.         self.label.setStyleSheet("font: 16pt \"Calibri\";")
  137.         self.label.setObjectName("label")
  138.         self.ai = QtWidgets.QLineEdit(self.centralwidget)
  139.         self.ai.setGeometry(QtCore.QRect(60, 100, 151, 31))
  140.         self.ai.setObjectName("ai")
  141.         self.label_2 = QtWidgets.QLabel(self.centralwidget)
  142.         self.label_2.setGeometry(QtCore.QRect(240, 70, 161, 21))
  143.         self.label_2.setStyleSheet("font: 16pt \"Calibri\";")
  144.         self.label_2.setObjectName("label_2")
  145.         self.bi = QtWidgets.QLineEdit(self.centralwidget)
  146.         self.bi.setGeometry(QtCore.QRect(240, 100, 151, 31))
  147.         self.bi.setObjectName("bi")
  148.         self.label_3 = QtWidgets.QLabel(self.centralwidget)
  149.         self.label_3.setGeometry(QtCore.QRect(140, 150, 161, 21))
  150.         self.label_3.setStyleSheet("font: 16pt \"Calibri\";")
  151.         self.label_3.setObjectName("label_3")
  152.         self.hi = QtWidgets.QLineEdit(self.centralwidget)
  153.         self.hi.setGeometry(QtCore.QRect(140, 180, 151, 31))
  154.         self.hi.setObjectName("hi")
  155.         self.equal = QtWidgets.QPushButton(self.centralwidget)
  156.         self.equal.setGeometry(QtCore.QRect(410, 130, 111, 41))
  157.         self.equal.setStyleSheet("font: 24pt")
  158.         self.equal.setObjectName("equal")
  159.         self.label_4 = QtWidgets.QLabel(self.centralwidget)
  160.         self.label_4.setGeometry(QtCore.QRect(570, 20, 181, 111))
  161.         self.label_4.setStyleSheet("font: 16pt \"Calibri\";")
  162.         self.label_4.setScaledContents(False)
  163.         self.label_4.setWordWrap(True)
  164.         self.label_4.setObjectName("label_4")
  165.         self.answer = QtWidgets.QLabel(self.centralwidget)
  166.         self.answer.setGeometry(QtCore.QRect(560, 140, 161, 21))
  167.         self.answer.setStyleSheet("font: 16pt \"Calibri\";")
  168.         self.answer.setObjectName("answer")
  169.         self.setCentralWidget(self.centralwidget)
  170.  
  171.  
  172.         # Транслирование надписей
  173.         _translate = QtCore.QCoreApplication.translate
  174.         self.label.setText(_translate("MainWindow", "Введи длину A"))
  175.         self.label_2.setText(_translate("MainWindow", "Введи длину B"))
  176.         self.label_3.setText(_translate("MainWindow", "Введи высоту С"))
  177.         self.equal.setText(_translate("MainWindow", "="))
  178.         self.label_4.setText(_translate("MainWindow", "Согласно формуле V=abc, объем параллелепипеда равен"))
  179.         self.answer.setText(_translate("MainWindow", ""))
  180.  
  181.         # Действия
  182.         self.equal.clicked.connect(self.math)
  183.  
  184.     def math(self, type):
  185.         if self.label_4.text() == "Согласно формуле V=⅓SH, объем пирамиды равен":
  186.             try:
  187.                 s = float(self.ai.text()) * float(self.bi.text())
  188.                 h = float(self.hi.text())
  189.                 self.answer.setText(str(s*h/3))
  190.             except:
  191.                 self.answer.setText(str(0))
  192.         elif self.label_4.text() == "Согласно формуле V=1⅓πR³, объем сферы равен":
  193.             try:
  194.                 r = float(self.ri.text())
  195.                 self.answer.setText(str(4/3 * math.pi * r**3))
  196.             except:
  197.                 self.answer.setText(str(0))
  198.         else:
  199.             try:
  200.                 a = float(self.ai.text())
  201.                 b = float(self.bi.text())
  202.                 c = float(self.hi.text())
  203.                 self.answer.setText(str(a * b * c))
  204.             except:
  205.                 self.answer.setText(str(0))
  206.  
  207.  
  208. if __name__ == "__main__":
  209.     import sys
  210.  
  211.     app = QtWidgets.QApplication(sys.argv)
  212.     w = Window()
  213.     w.show()
  214.     sys.exit(app.exec_())
  215.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement