
Як написати калькулятор на Python з допомогою PyQt5


Ответы на вопрос

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QGridLayout, QLineEdit, QSizePolicy, QSpacerItem
from PyQt5.QtCore import Qt
class Calc(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('Калькулятор')
self.setFixedSize(400, 400)
self.initUI()
def initUI(self):
self.display = QLineEdit(self)
self.display.setReadOnly(True)
self.display.setAlignment(Qt.AlignRight)
self.display.setFixedHeight(50)
self.display.setStyleSheet('font-size: 20px;')
self.buttons = {}
grid = QGridLayout()
grid.addWidget(self.display, 0, 0, 1, 4)
buttons = ['7', '8', '9', '/', 'C',
'4', '5', '6', '*', '',
'1', '2', '3', '-', '',
'0', '.', '=', '+', '']
row = 1
col = 0
for button in buttons:
if col > 3:
col = 0
row += 1
if button == '':
spacer = QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Expanding)
grid.addItem(spacer, row, col, 1, 1)
col += 1
continue
self.buttons[button] = QPushButton(button)
self.buttons[button].setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
self.buttons[button].setStyleSheet('font-size: 25px;')
self.buttons[button].clicked.connect(self.button_clicked)
grid.addWidget(self.buttons[button], row, col, 1, 1)
col += 1
self.setLayout(grid)
def button_clicked(self):
button = self.sender()
text = self.display.text()
if button.text() == 'C':
self.display.clear()
elif button.text() == '=':
try:
result = eval(text)
self.display.setText(str(result))
except SyntaxError:
self.display.setText('Error!')
else:
self.display.setText(text + button.text())
if __name__ == '__main__':
app = QApplication(sys.argv)
calc = Calc()
calc.show()
sys.exit(app.exec_())



Написання калькулятора на Python з використанням PyQt5 включає в себе кілька кроків. PyQt5 - це бібліотека для створення графічних інтерфейсів користувача на мові програмування Python. Я розгляну декілька кроків, які потрібно виконати для створення простого калькулятора.
1. Встановлення PyQt5: Перш за все, вам потрібно встановити бібліотеку PyQt5. Ви можете це зробити за допомогою pip:
```bash pip install PyQt5 ```
2. Створення файлу з кодом: Створіть новий файл Python, наприклад, `calculator.py`, і введіть наступний код:
```python import sys from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QLineEdit
class Calculator(QWidget): def __init__(self): super().__init__()
self.init_ui()
def init_ui(self): # Створюємо елементи інтерфейсу self.display = QLineEdit(self) self.display.setFixedHeight(50)
buttons = [ '7', '8', '9', '/', '4', '5', '6', '*', '1', '2', '3', '-', '0', '.', '=', '+' ]
grid_layout = QVBoxLayout(self) grid_layout.addWidget(self.display)
# Створюємо кнопки та розміщуємо їх на інтерфейсі for i in range(4): row_layout = QVBoxLayout() for j in range(4): btn = QPushButton(buttons[i * 4 + j], self) btn.clicked.connect(self.on_click) row_layout.addWidget(btn) grid_layout.addLayout(row_layout)
self.setLayout(grid_layout)
self.setGeometry(300, 300, 300, 400) self.setWindowTitle('Calculator') self.show()
def on_click(self): # Обробка натискання кнопок button = self.sender() current_text = self.display.text()
if button.text() == '=': try: result = eval(current_text) self.display.setText(str(result)) except Exception as e: self.display.setText('Error') else: self.display.setText(current_text + button.text())
if __name__ == '__main__': app = QApplication(sys.argv) calc = Calculator() sys.exit(app.exec_()) ```
3. Запуск програми: Збережіть файл і запустіть його за допомогою командного рядка або терміналу:
```bash python calculator.py ```
З'явиться вікно калькулятора з простим інтерфейсом.
Цей код створює простий калькулятор з графічним інтерфейсом за допомогою PyQt5. Коли користувач натискає кнопки, введені значення відображаються на дисплеї, і при натисканні кнопки "=" виводиться результат обчислень. Зверніть увагу, що це лише базовий калькулятор, і його можна розширити або модифікувати відповідно до ваших потреб.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili