使用 Tkinter 在 Python 中创建关机、重启和注销计算机的 GUI2025年3月17日 | 阅读18分钟 众所周知,Python 因其多功能特性而成为一种标准的脚本语言。在下面的教程中,我们将了解如何借助 Python 编程语言中的 tkinter 和 os 模块来构建一个 GUI 应用程序,以关闭、重启和注销计算机。 但在开始之前,让我们快速概述一下 os 模块。 简要了解 os 模块os 模块是 Python 的一个内置模块,允许用户与操作系统交互。Python 中的 os 模块提供了用于处理目录、操作其内容以及与系统协作的函数。 为了开始与底层操作系统交互,我们首先需要导入 os 模块。其语法如下所示 文件:test.py 说明 在上面的代码片段中,我们使用了 import 语句来导入 os 模块。 现在让我们了解如何使用 os 模块关闭、重启和注销计算机系统。os 模块提供了 system() 方法,用于在子 shell 中执行命令(字符串)。此方法通过调用具有相同限制的 标准 C 函数 system() 来执行。如果命令产生任何输出,它将转发到解释器的标准输出流。每当使用此方法时,都会打开操作系统的特定 shell,并在其上执行命令。 现在让我们考虑 os 模块的 system() 方法的语法。 语法 参数 1. 命令: 命令是一个字符串类型参数,用于告知要执行的命令。 返回值 在 Unix 操作系统上,返回值为进程的退出状态。相反,在 Windows 操作系统上,返回值为系统 shell 运行命令后返回的值。 现在我们已经了解了 os.system() 方法的作用,是时候了解如何使用它来关闭、重启和注销计算机系统了。我们将使用系统的 shutdown 命令,后跟参数 /s 来关闭系统,/r 来重启系统,或 /l 来注销系统。我们还可以使用 /t 参数,后跟一个整数值来设置执行操作的计时器。 让我们考虑以下说明此操作的语法。 语法 项目先决条件在 Python 中创建用于关闭、重启和注销计算机的 GUI 时,我们将需要一些库和模块。这些库简要描述如下
由于 Tkinter 库以及 os 和 webbrowser 模块随 Python 预装,因此无需外部安装。但是,我们可以通过在命令提示符或终端中键入以下命令来使用 PIP 安装程序安装 pillow (PIL) 库。 语法 安装完成后,我们可以通过创建一个新的 python 程序文件并导入 pillow (PIL) 模块来验证 pillow 库是否已正确安装。 以下是说明相同内容的代码片段。 文件:verify.py 现在,让我们保存文件并在命令提示符或终端中运行以下命令。 语法 如果程序没有返回任何导入错误,则表示库已成功安装。如果出现任何异常,请尝试重新安装库并考虑查看其官方文档。 现在让我们开始构建项目。 使用 Python 中的 Tkinter 构建用于关闭、重启和注销计算机的 GUI为了更好地理解,我们将创建这个 GUI 应用程序的完整项目代码分成了几个步骤。这些步骤如下所示: 步骤 1: 导入必要的模块 第二步: 定义执行不同操作所需的函数 步骤 3: 创建应用程序的主窗口。 步骤 4:向窗口添加必要的控件并设置事件触发器。 让我们更详细地了解上述步骤。 导入必要的模块首先,我们将导入所有必需的模块,其中包括 tkinter 模块的所有小部件和模块、PIL 模块的 Image 和 ImageTk 模块、os 模块和 webbrowser 模块。 让我们考虑以下说明相同内容的代码片段。 文件: appToClose.py 说明 在上面的代码片段中,我们从 tkinter 模块导入了所有小部件和模块,以处理图形用户界面。然后,我们从 PIL 模块导入了 Image 和 ImageTk 模块,以将图像添加到程序并在 Tkinter 应用程序中使用它们。然后,我们导入了 os 模块来使用系统命令。最后,我们导入了 webbrowser 模块,以便向应用程序添加网站链接。 定义执行不同操作的必要函数现在我们已经为项目导入了所有必需的模块,是时候定义一些函数来执行不同的操作了。这些函数包括显示信息、执行所需命令、取消操作和访问帮助。 现在让我们详细了解这些函数的实现。 显示信息的函数 我们定义的第一个函数将允许我们显示信息。此函数将检查选项菜单中选定的键,并向用户显示与选定选项相关的信息。 以下是演示相同内容的代码片段。 文件: appToClose.py 说明 在上面的代码片段中,我们定义了一个名为 display_info() 的函数,带有一个可变长度参数。在此函数中,我们使用 for 循环遍历 MENU 字典中的键。然后,我们使用 set() 方法从 INFO 列表中为选定的选项在标签中显示信息。 执行所需命令的函数 现在我们将定义一个函数,根据需要使用不同的参数执行系统的 shutdown 命令。此函数将使用 os 模块的 system() 方法,为菜单中选定的选项执行带有适当参数的系统 shutdown 命令。 让我们考虑以下演示相同内容的代码片段。 文件: appToClose.py 说明 在上面的代码片段中,我们定义了一个名为 execute_command() 的函数。在此函数中,我们遍历了 MENU 字典中可用的键,并检查选定的选项是否等于 MENU 中的键。如果是,我们使用 system() 方法执行系统的 shutdown 命令,后跟作为该相应键的值的可用参数。 取消操作的函数 现在我们将定义一个函数来取消或终止操作。我们将使用 destroy() 方法来关闭应用程序。 以下是说明相同内容的代码片段。 文件: appToClose.py 说明 在上面的代码片段中,我们定义了一个名为 cancel() 的函数。在此函数中,我们使用 destroy() 方法以及 gui_root(Tk() 类的对象)来关闭应用程序。 访问帮助的函数 现在我们将定义一个函数来打开提供帮助和支持的 URL。我们将使用 webbrowser 模块的 open() 方法来打开所需的 URL。 让我们考虑以下演示相同内容的代码片段。 文件: appToClose.py 说明 在上面的代码片段中,我们定义了一个名为 help() 的函数。在此函数中,我们使用 webbrowser 模块的 open() 方法来访问提供帮助和支持的 URL。 创建应用程序的主窗口现在我们已经定义了所有必要的函数来执行操作,是时候创建主窗口了,小部件将添加到其中。我们将使用 tkinter 模块的 Tk() 类创建窗口。我们还将设置标题、大小、位置、背景颜色和图标。 让我们考虑以下说明相同内容的代码片段。 文件: appToClose.py 说明 在上面的代码片段中,我们通过将 Tk() 类实例化为 gui_root 创建了主窗口。然后,我们使用 title() 方法设置了窗口的标题。我们还使用 geometry() 方法设置了窗口的大小和位置,并通过将 resizable() 方法的参数值设置为 0 来禁用可调整大小的选项,以获得更好的 UI。我们借助 config() 方法配置了窗口的背景颜色。最后,我们使用 iconbitmap() 方法设置了窗口的图标。 向窗口添加必要的控件并设置事件触发器由于应用程序的主窗口已成功创建,我们将向窗口添加所有必要的控件并设置事件触发器。这些控件包括用于构建其他控件的框架、用于显示重要信息的标签、用于插入数据的输入字段以及用于操作输入数据和调用函数的按钮。 现在让我们详细了解这些控件的添加。 添加框架和图像 我们将首先向主窗口添加框架。这些框架将有助于构建其他小部件。这些框架可以使用 tkinter 模块的 Frame() 小部件创建。我们还将使用 PIL 模块的 Image 和 ImageTk 模块将一些图像导入程序。这些图像将在应用程序中显示一些信息。 让我们考虑以下演示相同内容的代码片段。 文件: appToClose.py 说明 在上面的代码片段中,我们使用 Frame() 小部件向窗口添加了一些框架,并将其 master 参数设置为 gui_root(Tk() 类的对象)。然后,我们使用 pack() 方法来设置这些框架的位置。然后,我们使用 Image 模块的 open() 方法和 ImageTk 模块的 PhotoImage() 方法从目录中导入图像,用于 Tkinter 应用程序。 将小部件添加到 heading_frame 框架 现在我们将使用 Label() 小部件向此框架添加一个标签以显示标题。 让我们考虑以下演示相同内容的代码片段。 文件: appToClose.py 说明 在上面的代码片段中,我们使用 Label() 小部件将图像添加为应用程序的标签。然后,我们使用 pack() 方法来设置此标签的位置。 将小部件添加到 menu_frame 框架 现在我们将定义一个字典来显示一组通过应用程序执行的选项。我们还将定义一个列表来显示与每个选项关联的信息。然后,我们将添加标签等小部件以显示一些信息,以及一个选项菜单供用户使用 Label() 和 OptionMenu() 小部件选择要执行的操作。 让我们考虑以下演示相同内容的代码片段。 文件: appToClose.py 说明 在上面的代码片段中,我们定义了一个名为 MENU 的字典,显示了用于执行相关操作的选项和参数。然后,我们定义了一个名为 INFO 的列表,显示了有关每个操作的信息。然后,我们为 MENU 字典创建了 List() 函数的一个对象。然后,我们创建了一些 StringVar 类的对象并设置了这些对象的初始值。我们使用 Label() 小部件添加了一些标签,并将其 master 参数设置为 menu_frame 框架。然后,我们使用 OptionMenu() 小部件创建了一个下拉菜单,以显示 MENU 字典的键,并将其 master 参数设置为 menu_frame 框架。我们还使用 config() 方法来配置菜单的宽度、背景颜色和锚点。最后,我们使用 grid() 方法以网格格式设置标签和选项菜单的位置。 将小部件添加到 buttons_frame 框架 现在我们将向此框架添加必要的按钮。我们将使用 Button() 小部件向应用程序添加按钮,这将允许用户执行操作、取消操作和访问帮助。 让我们考虑以下演示相同内容的代码片段。 文件: appToClose.py 说明 在上面的代码片段中,我们使用 Button() 小部件向应用程序添加按钮,并将 master 参数设置为 buttons_frame 框架。然后,我们将这些小部件的 command 参数设置为我们之前定义的函数。我们还使用 Label() 小部件向应用程序添加一个空标签,并将 master 参数设置为 buttons_frame 框架。最后,我们使用 grid() 方法以网格格式设置这些按钮和标签的位置。 运行应用程序 我们现在将使用 mainloop() 方法和 Tk() 类的对象来运行应用程序。 让我们考虑以下演示相同内容的代码片段。 文件: appToClose.py 说明 在上面的代码片段中,我们使用 mainloop() 方法和 Tk() 类的对象 gui_root 来运行应用程序。 因此,项目代码现在已完成。我们将保存此 python 程序文件并在命令提示符或终端中运行以下命令以查看输出。 语法 但在看到输出之前,下面显示了“使用 Tkinter 关闭、重启和注销计算机的 GUI”的完整项目代码。 完整的项目代码以下是“使用 Python 中的 Tkinter 关闭、重启和注销计算机的 GUI”的项目代码。 文件: appToClose.py 输出 ![]() |
我们请求您订阅我们的新闻通讯以获取最新更新。