🧮 Как сделать калькулятор в Python PyQt5 | Пошаговое руководство 🐍
Как сделать калькулятор в Python с использованием PyQt5?
Для создания калькулятора в Python с использованием библиотеки PyQt5, вам понадобится выполнить следующие шаги:
- Установите PyQt5, если еще не установлено, с помощью команды pip install pyqt5.
- Импортируйте необходимые модули:
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QHBoxLayout, QLineEdit, QPushButton
from PyQt5.QtCore import Qt
- Создайте класс для главного окна приложения:
class CalculatorWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Калькулятор")
self.setFixedSize(300, 400)
# Добавьте здесь необходимые виджеты и компоновщики
# Создайте экземпляр вашего класса и запустите приложение
app = QApplication([])
calculator_window = CalculatorWindow()
calculator_window.show()
app.exec_()
- Добавьте необходимые виджеты и компоновщики в окно:
class CalculatorWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Калькулятор")
self.setFixedSize(300, 400)
# Создайте виджеты и компоновщики
layout = QVBoxLayout()
line_edit = QLineEdit()
layout.addWidget(line_edit)
button_layout = QHBoxLayout()
buttons = [
("7", self.on_button_click),
("8", self.on_button_click),
("9", self.on_button_click),
("/", self.on_button_click),
("4", self.on_button_click),
("5", self.on_button_click),
("6", self.on_button_click),
("*", self.on_button_click),
("1", self.on_button_click),
("2", self.on_button_click),
("3", self.on_button_click),
("-", self.on_button_click),
("0", self.on_button_click),
(".", self.on_button_click),
("=", self.on_button_click),
("+", self.on_button_click),
]
for btn_text, btn_callback in buttons:
button = QPushButton(btn_text)
button.clicked.connect(btn_callback)
button_layout.addWidget(button)
layout.addLayout(button_layout)
widget = QWidget()
widget.setLayout(layout)
self.setCentralWidget(widget)
def on_button_click(self):
# Добавьте обработчик события щелчка по кнопке
pass
- Реализуйте обработчик для события щелчка по кнопке:
class CalculatorWindow(QMainWindow):
def __init__(self):
super().__init__()
# ... остальной код окна, как указано выше ...
def on_button_click(self):
button = self.sender()
clicked_button_text = button.text()
if clicked_button_text == "=":
try:
result = eval(self.line_edit.text())
self.line_edit.setText(str(result))
except Exception:
self.line_edit.setText("Ошибка")
else:
current_text = self.line_edit.text()
new_text = current_text + clicked_button_text
self.line_edit.setText(new_text)
И это все! Теперь вы можете запустить свою программу, и у вас будет калькулятор на основе PyQt5 в Python.
Детальный ответ
Как сделать калькулятор в Python с использованием PyQt5
Добро пожаловать в эту подробную статью о том, как создать калькулятор с помощью языка программирования Python и библиотеки PyQt5. Мы изучим каждый шаг этого процесса и предоставим вам примеры кода, чтобы вам было легче понять и реализовать свой собственный калькулятор, используя PyQt5.
Шаг 1: Установка библиотеки PyQt5
Первым шагом необходимо установить библиотеку PyQt5. Вы можете установить ее, выполнив следующую команду в командной строке:
pip install pyqt5
Шаг 2: Создание основного окна приложения
Далее, давайте создадим основное окно нашего калькулятора. Создайте новый файл с расширением ".py" и добавьте следующий код:
import sys
from PyQt5.QtWidgets import QApplication, QWidget
class CalculatorApp(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(100, 100, 300, 200)
self.setWindowTitle('Калькулятор')
self.show()
app = QApplication(sys.argv)
calculator = CalculatorApp()
sys.exit(app.exec_())
В этом коде мы создаем класс CalculatorApp, унаследованный от класса QWidget. Мы также определяем метод initUI, который настраивает размеры и заголовок окна. Мы затем создаем экземпляр этого класса и запускаем приложение.
Шаг 3: Добавление виджетов для калькулятора
Теперь, когда у нас есть основное окно, давайте добавим виджеты для отображения кнопок и ввода/вывода нашего калькулятора. Вставьте следующий код в метод initUI:
from PyQt5.QtWidgets import QVBoxLayout, QGridLayout, QLineEdit, QPushButton
class CalculatorApp(QWidget):
def __init__(self):
# ...
self.initUI()
def initUI(self):
# ...
layout = QVBoxLayout()
self.setLayout(layout)
# Создание поля ввода
self.input_field = QLineEdit()
layout.addWidget(self.input_field)
# Создание кнопок с цифрами
digit_buttons = []
for i in range(0, 10):
digit_buttons.append(QPushButton(str(i)))
grid_layout = QGridLayout()
for i in range(0, 3):
for j in range(0, 3):
grid_layout.addWidget(digit_buttons[i * 3 + j], i, j)
layout.addLayout(grid_layout)
# Создание кнопки "="
equal_button = QPushButton("=")
layout.addWidget(equal_button)
self.show()
app = QApplication(sys.argv)
calculator = CalculatorApp()
sys.exit(app.exec_())
В этом коде мы добавляем поле ввода, кнопки с цифрами и кнопку "=". Мы используем виджеты QLineEdit и QPushButton из библиотеки PyQt5, чтобы создать наши элементы интерфейса и добавляем их на основное окно с помощью объекта QVBoxLayout. Мы также используем QGridLayout для размещения кнопок с цифрами в сетку.
Шаг 4: Добавление функциональности к кнопкам
Теперь, когда у нас есть наше основное окно и виджеты, давайте добавим функциональность к кнопкам. Вставьте следующий код в метод initUI:
class CalculatorApp(QWidget):
def __init__(self):
# ...
self.initUI()
def initUI(self):
# ...
# Создаем слоты для обработки нажатий кнопок
for button in digit_buttons:
button.clicked.connect(self.handle_digit_button)
equal_button.clicked.connect(self.calculate_result)
self.show()
def handle_digit_button(self):
button = self.sender()
self.input_field.setText(self.input_field.text() + button.text())
def calculate_result(self):
expression = self.input_field.text()
try:
result = eval(expression)
self.input_field.setText(str(result))
except:
self.input_field.setText("Ошибка")
app = QApplication(sys.argv)
calculator = CalculatorApp()
sys.exit(app.exec_())
В этом коде мы создаем методы handle_digit_button и calculate_result, которые будут выполняться при нажатии кнопок с цифрами и кнопки "=", соответственно. В handle_digit_button мы получаем текст кнопки, на которую нажали, и добавляем его к полю ввода. В calculate_result мы получаем выражение из поля ввода, вычисляем его с помощью функции eval и отображаем результат в поле ввода. Если возникает исключение при вычислении, мы выводим сообщение об ошибке.
Шаг 5: Запуск приложения
Теперь, когда наш код готов, мы можем запустить наше приложение. Сохраните файл с расширением ".py" и запустите его с помощью команды python filename.py. Вы должны увидеть окно калькулятора с кнопками и полем ввода. Вы можете печатать числа, нажимать кнопки с цифрами и "=", чтобы увидеть результат в поле ввода.
Заключение
Поздравляю! Вы только что создали свой собственный калькулятор с помощью Python и библиотеки PyQt5. Вы изучили, как создавать основное окно приложения, добавлять виджеты и функциональность к кнопкам. Вы также узнали, как обрабатывать пользовательский ввод и отображать результаты вычислений.
Я надеюсь, что эта статья была полезной для вас и помогла вам понять, как создать калькулятор с использованием Python и PyQt5. Теперь вы можете использовать этот опыт и вашу креативность, чтобы создавать еще более сложные приложения с интерфейсом!