【GUI】使用 PySide6 创建一个简单的计算器

使用 PySide6 创建一个简单的计算器

在这篇博客中,我们将探索如何使用 PySide6 创建一个简单的计算器应用程序。PySide6 是 Python 的 Qt 绑定,提供了一套强大的工具来开发图形用户界面(GUI)应用程序。通过这个项目,我们将了解基本的 GUI 组件和布局管理。

安装 PySide6

在开始之前,请确保你的 Python 环境中安装了 PySide6。你可以使用以下命令进行安装:

pip install PySide6

创建计算器的基础结构

我们的计算器将具有基本的加、减、乘、除功能。以下是我们将要创建的计算器的设计结构:

  • 一个显示区域用于显示输入和结果
  • 数字按钮(0-9)
  • 操作符按钮(+、-、*、/)
  • 清除(C)和等号(=)按钮

代码实现

以下是实现计算器的完整代码:

import sys
from PySide6.QtWidgets import QApplication, QMainWindow, QWidget, QGridLayout, QPushButton, QLineEdit
from PySide6.QtCore import Qt

class Calculator(QMainWindow):
    def __init__(self):
        super().__init__()

        self.setWindowTitle("PySide6 Calculator")
        self.setFixedSize(300, 400)

        # 设置主窗口小部件
        self.central_widget = QWidget(self)
        self.setCentralWidget(self.central_widget)

        # 设置布局
        self.layout = QGridLayout()
        self.central_widget.setLayout(self.layout)

        # 显示区域
        self.display = QLineEdit()
        self.display.setAlignment(Qt.AlignRight)
        self.display.setFixedHeight(40)
        self.layout.addWidget(self.display, 0, 0, 1, 4)

        # 按钮定义
        buttons = {
    
    
            '7': (1, 0), '8': (1, 1), '9': (1, 2), '/': (1, 3),
            '4': (2, 0), '5': (2, 1), '6': (2, 2), '*': (2, 3),
            '1': (3, 0), '2': (3, 1), '3': (3, 2), '-': (3, 3),
            '0': (4, 0), 'C': (4, 1), '=': (4, 2), '+': (4, 3),
        }

        # 创建按钮并连接到事件
        for btn_text, pos in buttons.items():
            button = QPushButton(btn_text)
            button.setFixedSize(60, 60)
            self.layout.addWidget(button, pos[0], pos[1])
            button.clicked.connect(self.on_button_click)

    def on_button_click(self):
        button = self.sender()
        text = button.text()

        if text == 'C':
            self.display.clear()
        elif text == '=':
            try:
                expression = self.display.text()
                result = str(eval(expression))
                self.display.setText(result)
            except Exception:
                self.display.setText("Error")
        else:
            self.display.setText(self.display.text() + text)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = Calculator()
    window.show()
    sys.exit(app.exec())

代码说明

  1. 主窗口和布局

    • 我们创建了一个 QMainWindow 并设置了一个中央小部件,以便在其上放置其他组件。使用 QGridLayout 布局管理器来安排按钮和显示区域的位置。
  2. 显示区域

    • 使用 QLineEdit 来显示用户输入的算式和结果,并将其对齐到右侧。
  3. 按钮

    • 使用 QPushButton 创建数字和操作符按钮,将它们放在布局中的适当位置。按钮按下时会调用 on_button_click 方法。
  4. 功能实现

    • C 按钮清除显示区域的内容。
    • = 按钮使用 eval 函数计算输入的表达式。
    • 其他按钮的点击事件会将相应的字符添加到显示区域。

运行效果

当你运行这个程序时,将弹出一个简单的 GUI 计算器窗口,用户可以通过点击按钮来输入算式并查看计算结果。这个实现提供了基本的计算功能,你可以根据需求进行进一步扩展,例如处理更多的数学操作或改进错误处理等。
GUI 计算器窗口

总结

在这篇博客中,我们展示了如何使用 PySide6 创建一个简单的计算器应用程序。通过这个项目,你可以更好地理解如何构建 GUI 应用程序的基本组件和布局管理。希望你能在这个基础上进行更多的扩展和改进!

猜你喜欢

转载自blog.csdn.net/h1773655323/article/details/142850062