【问题标题】:How to create a GUI to send commands and args to a command-line application? [closed]如何创建 GUI 以将命令和参数发送到命令行应用程序? [关闭]
【发布时间】:2018-09-17 11:09:17
【问题描述】:

我和我的家人经常使用命令行应用程序。它变得乏味,因为有时输入的字符数量可能很多。我儿子问我是否有可能让它像一个正常的程序一样。 (他 10 岁,甚至不知道什么是录像机或按键式电话,哈哈。)无论如何,我告诉他必须有人为此编写程序。他说他想。 (我想我知道将来谁来照顾我和我的妻子……哈哈,j/k……)这对我们俩来说都是一次学习经历。

那么,让我们开始他的职业生涯吧!

我不是在找人为我们写完整的东西。我们只需要一个好的开始。

我们如何为命令行 exe 创建 GUI? (该 exe 是开源的,并且是用 python 编写的,但现在我们将坚持将 cmd 传递给 exe 并读取其输出。)

所以我们正在寻找:

一个用于我们输入的文本框、几个用于 args 的单选按钮、一个提交按钮和一个清除按钮。我想应该有一个地方来定义exe的路径。

Syntax: command --argument-abc --argument-xyz <textbox-data>

If no options are selected it should default to: command <textbox-data>
The 3 options we basically are starting with are: This way, That way or both

它应该在运行时实时显示控制台输出。

这是我们想要开始的 SS。 Preliminary Layout

接下来我们会将它们打包在一起,但我认为这应该是让我们继续前进的良好开端。该 exe 具有数百个不同的参数,这些参数将随着时间的推移添加到选项选项卡或其他选项卡上。

我们正在使用 Microsoft Visual Studio 2017

对不起,乱七八糟的。

哦,还有最后一件事。请向我们指出一些好的文章、操作方法或任何您认为能帮助我们了解我们需要什么的东西。

【问题讨论】:

  • 欢迎来到 Stack Overflow。这是程序员带来尚未工作的代码的地方。我赞赏你儿子的打算。因为有很多方法可以做到这一点,所以 SO 试图限制广泛的主题以避免冲突并为特定问题提供特定答案。最好在superuser.com 上询问。您可能会在poshgui.com 上获得良好的开端。
  • 我的答案包括使用 Python。如果您的儿子开始从事编程职业,Python 是他考虑的重要语言。值得庆幸的是,它是最容易入门的语言之一。您使用什么工具将 Python 程序转换为 EXE 格式。您可以将 Python 源代码获取到您的 exe 并让您的 GUI 直接调用它,而不是作为单独的 exe 文件启动。您正在启动的开源程序是什么?

标签: c# .net user-interface cmd interface


【解决方案1】:

如果您不介意在 Python 中执行此操作,那么PySimpleGUI 可能会为您工作。

有一个演示程序可以做到这一点,在命令行程序的前端添加一个 GUI。

OpenSource.com 最近发表了一篇文章,指导您完成此操作。

只是为了好玩,我复制了您使用 PySimpleGUI 构建的 GUI。不到 20 行代码。

我最近将我的 GUI python 程序与 PyInstaller 结合在一起。它生成一个运行并仅显示我的 GUI 窗口的 .EXE 文件。我使用的命令指示 PyInstaller 隐藏 dos 窗口。

pyinstaller -wF my_gui_program.py

PySimpleGUI Code and screen capture of window

【讨论】:

    【解决方案2】:

    另一种选择是使用 PowerShell 来执行此操作 - 更高版本具有内置的 .net 框架,并且可以像在 vb.net 中一样创建用户表单。如果您有vb.net 的经验,应该会更容易。作为一个额外的优势,PowerShell 通常可以使用与命令提示符相同(或相似)的命令,因此应该很熟悉。

    查看here 了解更多信息,不过,在 Google 上快速搜索 PowerShell GUI 就足够了。

    然而,MikeyB 说 Python 是一门好学的语言是完全正确的——它被用于行业的许多不同领域(不过我个人仍然更喜欢 vb.net,我只看了一个月的 Python )。

    【讨论】:

      【解决方案3】:

      使用CommanUI,您可以指定您的命令行模型并为其生成GUI,而无需编码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-04
        • 2010-10-25
        • 1970-01-01
        • 2019-12-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多