Python 中的 GUI 计算器

2025年3月17日 | 阅读19分钟

在本教程中,我们将学习如何使用 Python 中的 Tkinter 库构建一个简单的 GUI 计算器。我们将逐步学习完整的代码片段。

那么,让我们开始吧。

开始使用 Tkinter 构建 GUI 计算器

Tkinter 库提供了在 Python 编程语言中开发基于图形用户界面 (GUI) 应用程序的最快、最简单的方法。Tkinter 包,也称为“Tk 接口”,是 Python 与 Tcl/Tk GUI 工具包的标准接口。TkTkinter 在大多数 Unix 平台和 Windows 系统上都可用。如果有人在 Linux/Ubuntu 上工作,则需要在他们的机器上安装 Tkinter 包才能运行程序;但是,它随 Python 安装一起预装在 Windows 上。

如果 Tkinter 未预装在 Python 中,那么我们可以通过在 Windows 命令提示符中键入以下命令,使用“pip”安装程序安装它

语法

什么是 Tkinter 消息框?

消息框是 Python Tkinter 库中的一个小部件。此小部件用于在 Python 应用程序中显示消息框。我们可以使用此模块通过多种功能显示消息。

语法

参数

  1. 函数名称:此参数用于表示消息框的相应函数。
  2. title:此参数是一个字符串,表示消息框的标题。
  3. message:此参数也是一个字符串,包含要在消息框上显示的消息。
  4. **options:这里可以使用两个选项
    1. default:此选项用于表示消息框中的默认按钮,例如 ABORT、RETRY 或 IGNORE。
    2. parent:此选项用于表示消息框在其顶部显示的窗口。

理解 GUI 计算器的结构

为了开始构建 GUI 计算器,我们需要了解其结构。这种分析将使工作更加高效和有效。以下是我们将构建的 GUI 计算器的结构。

GUI Calculator using Python

以上结构由标签、框架和按钮组成。让我们简要讨论这些小部件

Python Tkinter 标签: Label 小部件用于指定用户可以设置文本或图像的容器框。此小部件用于向用户提供与 Python 应用程序中使用的其他小部件相关的消息。

Python Tkinter 框架: Frame 小部件只是一种小部件。Python 中的框架充当其子元素的容器。这些小部件为子元素提供主框架,并允许我们逐帧划分应用程序的整个布局。

例如,我们运行一个应用程序,其结构由一个开头的标签,然后是一个根窗口上的一些按钮组成。我们可以将这个根窗口按部分划分。假设标签是一个片段,然后按钮是另一个片段。如果我们将这些片段放在一个框架中,这个框架将充当父元素。这将使我们能够简化复杂的设计。

一旦我们将框架包含在 GUI 计算器的结构中,它的结构将如下所示

  1. 标签
  2. 第一个框架:四个按钮
  3. 第二个框架:四个按钮
  4. 第三个框架:四个按钮
  5. 第四个框架:四个按钮

Python Tkinter 按钮: Button 小部件用于在 Python 应用程序中插入按钮。这些按钮可以显示文本或图像,表达按钮的目的。我们可以将一个方法或函数附加到按钮上,当点击按钮时会自动调用该方法或函数。

既然我们已经了解了我们将要构建的 GUI 计算器的结构,我们就可以进入代码部分了。

Python 中 GUI 计算器的代码实现

在以下部分中,我们将看到 Python 编程语言中 GUI 计算器的代码实现。这个项目的实现将逐步进行

步骤 1:定义函数

步骤 2:为 GUI 计算器创建窗口

步骤 3:设置标签格式

步骤 4:在窗口上打包按钮

步骤 5:将按钮添加到 GUI 计算器

定义函数

我们现在将从导入所需的库和模块开始。现在让我们考虑以下演示相同内容的代码片段

文件:guiCalci.py

说明

在上面的代码片段中,我们导入了必要的库,例如 Tkinter 以及所有小部件类,包括 messagebox 模块。

我们现在将定义将操作按钮工作的函数。现在让我们考虑以下代码片段,它演示了当用户按下按钮“1”时调用的函数的实现。

文件:guiCalci.py

说明

在上面的代码片段中,我们定义了一些变量并用初始值对其进行了初始化。然后我们定义了一个函数,当用户按下按钮“1”时将调用该函数。然后我们在此函数中使用了 global 关键字和 var 变量。这将允许我们在此函数中修改 var 变量的值。然后我们将 1 连接到 var 变量,并使用我们将在本教程后面定义的 set() 方法在 StringVar 中设置此变量。

当用户点击数字“1”按钮时,将调用此函数。此函数将在标签上显示点击的数字,并将其存储在不同的变量中,以便于计算。

我们现在将对所有 Tkinter 按钮遵循相同的步骤。这是演示相同内容的​​代码片段。

文件:guiCalci.py

说明

在上面的代码片段中,我们定义了不同的函数来将所需的值或运算符附加到字符串。对于从 09 的值,我们使用了 global 关键字和 var 变量,并将所需的数字附加到最终字符串。对于像 +-*/=C 这样的运算符,我们使用了 global 关键字和 Avaroperator 变量,并将所需的运算符附加到最终字符串。最后,我们定义了一个函数来计算结果。在此函数中,我们再次使用了 global 关键字来修改 Aoperatorvar 变量的值。然后我们声明并初始化了一个新变量,将其值设置为 var。然后我们使用了 if-elif-else 条件语句来根据需要进行操作并存储结果。

为 GUI 计算器创建窗口

我们现在将使用 Tkinter 库的 Tk() 类创建一个窗口。这个窗口将包含标题栏和其他装饰。

根窗口是程序中的主应用程序窗口。它必须在任何其他小部件之前创建。此窗口包含标题栏和边框。这些装饰由窗口管理器提供。

Tk() 类的 geometry 方法允许程序员设置窗口的大小和屏幕上的位置。此方法的前两个参数是窗口的宽度和高度,而后两个参数是用于在屏幕上定位窗口的 x 和 y 坐标。

Tk() 类的 resizable 方法允许用户根据需要更改窗口的大小。我们将此方法的参数设置为 0,禁用窗口的调整大小选项。最好使用 resizable(0, 0) 方法,因为它将使计算器看起来更合适。

现在让我们考虑以下代码片段来演示这一点。

文件:guiCalci.py

说明

在上面的代码片段中,我们创建了一个 Tk() 类的对象。然后我们使用 geometry() 方法设置了窗口的大小。我们还使用了 resizable() 方法并将参数设置为 0,以禁用调整大小选项,以获得更好的用户界面。最后,我们使用了 title() 方法并为计算器添加了标题。

设置标签格式

Label 小部件允许我们创建一个显示框,我们可以在其中放置文本或图像。这个小部件允许我们根据需要随时更新显示的文本。还可以强调部分文本(例如识别键盘快捷键)并将文本限制在多行中。

标签的父级是根,这意味着它不会局限于单个框架,而是整个根窗口。然后我们将放置一个简单的文本,我们将在整个代码中动态更改它,直到我们点击的数字按钮显示在标签上。

Tkinter StringVar 允许我们更有效地管理像 Label 或 Entry 这样的小部件的值。容器是 StringVar 对象所关联的小部件。如果我们省略容器,它将默认为根窗口,并且值是默认为空字符串的初始值。

  1. anchor:此参数控制文本在小部件中的位置,并且包含比文本所需的更多空间。默认值为 anchor = SE(小部件将位于框架的右下角)。
  2. textvariable:此参数应设置为 StringVar 类的对象,以便我们可以从输入小部件中检索当前文本。

文件:guiCalci.py

说明

在上面的代码片段中,我们创建了一个 StringVar 类的对象。然后我们使用 Label 小部件为窗口创建了标签,指定了一些参数,如 Tk() 类的对象、textanchor、字体样式和大小、textvariable、背景颜色和前景色。

然后我们使用了 pack() 方法和 Label 的对象,并将 expand 参数的值设置为 Trueexpand 参数负责父小部件的展开。

在窗口上打包按钮

Tkinter 提供了一个名为 Frame 的小部件。这个小部件在以某种友好方式对其他小部件进行分组和排列方面具有重要意义。帧就像容器,负责组织其他小部件的位置。

它利用屏幕中的矩形区域来组织布局并提供这些小部件的填充。

我们还可以将框架用作实现复杂小部件的基础类。

框架的语法如下所示

语法

参数

  1. parentWindow此参数表示父窗口。
  2. options此参数包含代码最常用的选项列表。这些选项可以视为由逗号分隔的键值对。
  3. bg此参数显示标签和指示器后面的背景颜色。

现在让我们考虑以下代码片段,它演示了 GUI 计算器项目中框架的实现。

文件:guiCalci.py

说明

在上面的代码片段中,我们使用了 Frame() 小部件为窗口创建了一个框架。我们还包含了 bg 参数以美化框架并添加背景颜色。然后我们使用了 pack() 方法和 Frame 的对象,以便框架在获得一些空间时可以展开。然后我们对其他三个框架重复了相同的过程。

将按钮添加到 GUI 计算器

Python 中的 Tkinter 库提供了一个名为 Button 的小部件。此小部件将允许我们向 GUI 计算器添加按钮。这些按钮可以显示文本或图像,以实现按钮的目的。我们还可以将函数或方法附加到按钮,当点击按钮时会自动调用。

现在让我们考虑以下代码片段,它演示了 Button 小部件的实现。

文件:guiCalci.py

说明

在上面的代码片段中,我们使用 Button() 小部件创建了不同的按钮。对于每个按钮,我们都指定了目标 Frame 对象,设置了要显示的文本、字体样式和大小、reliefbordercommand。然后我们使用 pack() 方法将每个按钮并排放置。

最后,我们将包含 mainloop() 方法来运行窗口。

文件:guiCalci.py

说明

在上面的代码片段中,我们使用了 mainloop() 方法以及 Tk() 类的对象来运行窗口。

GUI 计算器”项目的编码终于完成。我们现在可以保存文件并运行程序以查看它是否有效。

要运行程序,我们可以在命令行 shell 或终端中键入以下命令

命令

但在我们看到输出之前,这里有一个完整的项目代码。

完整的项目代码

以下程序文件是“GUI 计算器”项目的完整代码。

文件:guiCalci.py

输出

GUI Calculator using Python