python - 如何在 Python 中为命令行应用程序制作 GUI?

我是 Python 的初学者,尝试使用 Python 制作命令行应用程序。

我已经开发了这个程序,但是我看到我的程序在 cmd.exe 中执行,这似乎是那种程序的默认设置。

但我想要一个更好的 GUI,比如 Windows Terminal。但问题是,Windows Terminal 并没有像 cmd.exe 那样安装在所有 Windows 计算机中。

因此,我想请您提出任何制作 GUI 的方法或将 Windows Terminal 与我的 Python 程序捆绑在一起的方法。



谢谢寻求任何帮助。

回答1

所以首先我们需要了解一些术语。您比较 Windows Terminal 和 cmd.exe,但它们实际上是两种完全不同类型的应用程序。 CMD 是旧的 Windows shell。它在终端仿真器(又名终端)内运行。它可以在 Windows 下运行多个终端:

  • 默认情况下,在 Windows 10 中,它在旧版 Windows 控制台主机中运行。这是近 30 年(也许更久)的 Windows 终端。
  • CMD 也可以在 Windows Terminal 中运行,该终端是 Microsoft 的替代终端,可安装在 Windows 10 或 Windows 11 中。在 Windows 11 下,它可以成为 Windows 的默认终端。

当您要求 Windows 运行控制台/终端应用程序(例如 Python CLI 应用程序)时,Windows 始终在其默认终端中运行它——在 Windows 10 下,始终是 Windows 控制台主机。在 Windows 11 下,它可能是 Windows 控制台主机或 Windows Terminal,具体取决于用户配置。

但是还有多个其他终端可以在 Windows 中运行您的 CLI Python 应用程序:

一些比较流行的是:

  • 动车组
  • 命令
  • MobaXterm

您可以在https://www.puttygen.com/windows-terminal-emulators中找到其他人。

所以实际上并不是你的应用在 CMD 中运行,而是你的应用在 Python(解释器)中运行,它在 CMD(shell)下运行,它在 Windows 控制台主机(默认终端)下运行模拟器)。

请注意,Python 也可以在其他 shell(PowerShell、WSL 下的 Linux shell、Nushell 等)下运行。这些 shell 也可以在上面的任何终端中运行。或者您的 Python CLI 应用程序可以作为终端内的顶层运行。

好的,现在我们已经建立了一些基础......

但我想要一个更好的 GUI,比如 Windows Terminal。

有点不清楚你的意思是什么,但除了尝试打包 Windows Terminal 之外,可能还有其他解决方案。旧版控制台和 Windows Terminal 都应该为您的应用程序提供类似的功能。 Windows Terminal 为用户添加选项卡之类的内容,但您无法在应用程序中控制它。控制台主机和 WT 都可以使用相同的 Windows 字体进行配置。

您可以在 Windows Terminal 中做而不能在控制台主机中做的一件事是为您的应用程序定义一个配置文件,包括您希望它在其下运行的主题、背景图像等。也许这就是您所要求的,但您没有指定这些功能。

建议任何制作 GUI 的方法

如果您希望在 Python 中创建 GUI,请考虑使用 https://wiki.python.org/moin/GuiProgramming 而不是 CLI 应用程序来构建它。您甚至可以在 Python 中编写终端仿真器,但这可能有点矫枉过正。

或将 Windows Terminal 与我的 Python 程序捆绑在一起的方法。

这可能不是一个好主意。 Windows Terminal 在作为 Microsoft Store 应用程序(又名 UWP、Modern 等)安装时效果最佳。无法将 Microsoft Store 应用程序与其他应用程序捆绑在一起;就像您无法在 iOS 上自动从另一个 Apple App Store 应用程序安装一样。也可以将 Windows Terminal 作为传统的 .exe 安装/运行,但这不是默认(或支持)方式。

您可以考虑以下几点:

  • 让你的主 Python 应用程序成为一个“启动器”,检查是否安装了 Windows Terminal,也许是通过寻找现有的 wt.exe

  • 如果 Windows Terminal 已安装:

    • 检查您的应用程序 https://docs.microsoft.com/en-us/windows/terminal/json-fragment-extensions 在相应目录中是否存在(请参阅链接)。如果它不存在,请安装它。
    • 通过调用类似 wt.exe new-tab --profile <your_app_profile> 的方法启动您的应用程序,以使用您在 JSON 片段中定义的配置文件在 Windows Terminal 中启动或打开一个新选项卡。
  • 如果Windows Terminal没有安装:

    • 建议用户安装。打开 Microsoft Store 链接。
    • 如果他们选择不这样做,您的启动器仍应启动应用程序的 CLI 部分 - Windows 将使用默认终端,该终端应为 Windows 控制台主机。
  • 提供单独运行 CLI 部分的说明(无需启动器),以便其他终端仿真器的用户可以在他们喜欢的环境中运行它。

相似文章

最新文章