【问题标题】:Best approach for building a multiplattform graphical interface for a command-line application为命令行应用程序构建多平台图形界面的最佳方法
【发布时间】:2010-03-14 16:35:55
【问题描述】:

我开发了一个命令行应用程序,它的二进制文件在 Linux、Windows 和 Mac OSX 中运行。它读取一些文本输入文件,但我意识到一些特殊用户无法处理这个。然后我想构建某种图形界面,用户只能找到用于选择输入参数的按钮和滚动条,一个大的“运行”按钮,然后它会读取程序的输出并制作一些数字。

我还需要最终将所有内容打包到一个文件中,该文件仅使用静态库,因此用户只需将文件复制到他/她的机器上并运行它。

我想知道执行此操作的最佳开源和多平台方法是什么。 10年前我在DEC机器上玩过一些类似的东西,所以我想现在情况可能有所改善。

附:为了设计图形界面,我正在寻找一种图形方法,您可以在其中添加按钮,用鼠标滚动条 附: 2:界面非常简单,只需要不到10个按钮、5个文本字段和2个滚动条

谢谢

【问题讨论】:

  • 而你选择的编程语言是???
  • 我正在寻找可以仅使用鼠标构建图形界面的东西。我没有你那么勇敢:)
  • 如何使用 python glade GUI builder

标签: user-interface interface-builder


【解决方案1】:

对于高级 UI,我通常建议为每个平台编写不同的 UI(因为每个平台都有其人机界面指南)。但是,这将是一个简单的 UI,然后是跨平台 UI 之一。

你也没有提到你想使用什么语言。

最后,您的“1 个 exe 文件”有点神秘 - 它仅适用于 Windows。在 MacOSX 上,我们使用神奇的应用文件夹,因此无论您的应用包含多少个文件,您仍然可以进行拖放安装。

查看源自 Linux 的 GTK+wxWidgets

【讨论】:

  • re:1 exe 文件是一个神话:不,不是。虽然 MacOSX 文件通常是一个神奇的应用程序文件夹,但将单个文件作为整个应用程序是完全可以接受的。从用户的角度来看,它是完全相同的——您可以将单个文件拖放到任何您想要的地方。 Tcl 使用可跨平台工作的嵌入式虚拟文件系统使这成为可能。
【解决方案2】:

Tcl/Tk 是一个完美的选择。没有其他语言提供如此好的部署解决方案。您可以创建一个虚拟文件系统,将您的应用程序以及图标、声音文件等放入每个平台的单个文件中(称为“starpack”)。您甚至可以包含二进制可执行文件和库,但必须在运行时将它们复制到实际文件系统中才能使用。

您还可以选择两个文件部署——一个特定于平台的运行时称为“tclkit”,一个独立于平台的应用程序文件称为“starkit”。一个 starkit 可以在所有平台上工作,无需重新编译、重新打包等。它甚至可以在内部内置特定于平台的部分并在运行时选择。

专业的 Tcl/Tk 开发人员可以在一天之内完成命令行程序的前端,而无需图形 GUI 设计工具。如果您是 tcl 新手,显然需要更长的时间,但任何语言都是如此。关键是,Tk 非常易于使用,并且不需要图形 GUI 设计器。

【讨论】:

    【解决方案3】:

    对于跨平台 UI,您可以使用 GTK(如果使用 C)或 QT(如果使用 C++)。

    【讨论】:

      【解决方案4】:

      如果您可以使用相当庞大的应用程序包来交付,请务必查看https://electronjs.org/ 您可以将功能保留在命令行应用程序中,并使用 HTML5 CSS JS 构建现代外观 UI,然后再考虑“这是荒谬”考虑到微软的 Visual Studio 代码是基于此构建的,与 GTK / wxWidgets 相比,您可以用它创造奇迹。这甚至不难做到,但你要么喜欢它,要么讨厌它。我还没有决定...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-23
        • 2011-06-14
        • 2015-09-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-01
        相关资源
        最近更新 更多