【问题标题】:Should I use a cross-platform GUI-toolkit or rely on the native ones?我应该使用跨平台的 GUI 工具包还是依赖本机工具包?
【发布时间】:2010-09-07 06:04:25
【问题描述】:

作为程序员,我的副业是用 C++ 编写一个程序来将音频文件从/转换为各种格式。可能这将涉及构建一个简单的 GUI。

使用 Cocoa 和 WinForms 而不是像 Qt 或 GTK 这样的跨平台工具包为 Mac 和 Windows 构建单独的 GUI 会是一项巨大的努力吗?
(无论如何,我将不得不维护一个单独的 Windows 版本和 Mac 版本)
GUI 可能非常简单,只需要非常基本的功能。

我一直觉得原生 GUI 比它的跨平台兄弟更直观......

【问题讨论】:

    标签: c++ user-interface cross-platform


    【解决方案1】:

    如果你有专业知识,使用原生前端,它实际上会使你为 UI 做的工作加倍,但根据我的经验,非原生 UI 比它们的原生 UI 有点笨拙。

    【讨论】:

      【解决方案2】:

      你看过wxWidgets吗?跨平台原生控件。

      【讨论】:

      • 最大的问题是不同的平台对控件的布局有不同的规则。当然按钮看起来很原生,但如果排列错误,那么整体 UI 仍然很糟糕。 (OSX 用户在这方面往往是最挑剔的。)
      【解决方案3】:

      跨平台工具包或多或少都错误地假设平台之间的区别在于按钮位置和小部件样式。在某些情况下,您可以侥幸逃脱——Qt 应用程序在 Windows(UI 约定非常宽松)和 Linux 上都感觉相当原生,尤其是在 KDE 环境中。一般来说,您可以相对轻松地在 Linux 和 Windows 之间切换;约定是相似的,Windows 社区对它们很松懈。

      Mac 是最难的。它的 UI 是围绕与 Windows 或大多数 Linux 环境完全不同的范例构建的。

      但总的来说,在原生应用程序中,使用平台的原生语言比仅仅使用小部件样式更容易。

      【讨论】:

        【解决方案4】:

        我同意,如果可能的话,原生前端是必经之路。我最近没有使用 wxWidgets,而且我听说它已经走了很长一段路,但是当它是 wxWindows 时,我们用它构建了一个应用程序,它被指定为在 X/Motif 中构建。当我们完成工作并交付时,客户说它看起来不够像 X/Motif,我们不得不重新设计整个 UI,费用由我们承担...... Joel Spolsky 写了一篇很好的文章,但我可以不记得标题了。他确实说过,IIRC,Java 和其他一些跨平台 UI 的问题是“你的狗对我的应用程序吠叫”——这是惹恼人们的小不一致。

        【讨论】:

        • :-O。有谁会希望他们的应用看起来像 MOTIF!?!?!?它就像是界面工具包的 COBOL!
        【解决方案5】:

        是的。

        但是说真的,这取决于您的目标。我同意原生 UI 库,通过大量的努力,将提供更好的结果,但对于许多应用程序,一个非常基本的 UI 就足够了,如果你采用现有的跨平台框架之一,那么工作量就会少得多.

        也许从 CLI 开始并让功能正常工作对于音频转换应用程序最有意义。

        【讨论】:

          【解决方案6】:

          我将很快为此编写自己的跨平台应用程序 GUI 层。 根据您的应用程序的复杂性,这可能只是 QT、GTK 或 FOX 所需的一小部分。

          原因是我们看到平台供应商(Apple 首先)试图设计该系统以使其看起来独一无二的趋势。这使得 QT、GTK、FOX 和其他平台工具更难与最新的小部件保持同步。

          当底层技术变得越来越相同时,操作系统供应商别无选择,然后在平台的外观和感觉上进行品牌推广。

          【讨论】:

            【解决方案7】:

            wxWidgets 使用标准的 c++ 语法和预处理器,因此您可以轻松地从普通的 C 或 C++ 进行更改。并且会在出现的地方产生非常原生的外观,无论是在 GTK、X11、MS-Windows 还是 Mac 上。

            它自第一次发布 20 年以来就已经成熟,拥有完整的文档,易于导航,并得到世界各地大型社区的支持。 在您最喜欢的 IDE 中编码或使用著名的 Eclipse-IDE 和 wxFormBuilder 作为 GUI 设计器。构建 wx 库和 IDE/Toolchain 设置可以在这个链接上找到:http://yasriady.blogspot.co.id/2016/01/raspberry-pi-toolchain.html

            在 Linux 桌面上开发您的应用程序,并为 Raspberry Pi2 提供编译器(目标应用程序经过测试可以在 Raspbian Jessie 上顺利运行)......

            【讨论】:

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