我应该使用跨平台GUI工具包还是依赖于本地的工具包?

5
作为程序员的兼职工作,我需要用C++编写一个程序来转换各种音频文件格式。可能需要构建一个简单的图形用户界面。
使用Cocoa和WinForms分别为Mac和Windows构建独立的GUI,而不是使用跨平台工具包如Qt或GTK,这是否需要付出很大努力?(无论如何,我都必须维护单独的Windows版本和Mac版本)GUI可能非常简单,只需要非常基本的功能。
我一直觉得本地GUI比跨平台GUI更直观......
7个回答

8

如果您具备相关专业知识,请使用本地前端,这将有效地增加您在UI方面的工作量,但根据我的经验,非本地化的UI比其本地化的对应物略显笨重。


7

你看过wxWidgets吗?它是跨平台本地控件。


4
问题在于不同平台对控件的布局规则不同。虽然按钮看起来与本地应用程序相似,但如果排列方式不正确,则整个用户界面仍然会很糟糕。(在这方面,OSX用户往往是最挑剔的。) - Donal Fellows

3
跨平台工具包或多或少都会错误地假设不同平台之间的差异仅仅是按钮位置和小部件样式的问题。在某些情况下,您可以通过这种方式解决问题 - Qt应用程序在Windows(其中UI惯例非常宽松)和Linux上都会感觉相当本地化,特别是在KDE环境中。一般来说,您可以相对容易地在Linux和Windows之间移动;惯例是类似的,而且Windows社区对此并不严格。
Mac是最难的。其UI建立在与Windows或大多数Linux环境完全不同的范例之上。
但是一般来说,在本地应用程序中,除了小部件样式之外,使用平台的本地语言更容易。

3

我认为,如果可能的话,本地前端是最好的选择。我最近没有使用 wxWidgets,但我听说它已经有了很大的进步,但是当它还叫 wxWindows 时,我们用它构建了一个应用程序,该应用程序被规定要在 X/Motif 中构建。当我们完成努力并交付后,客户说它看起来不够像 X/Motif,我们不得不自掏腰包重新设计整个用户界面... Joel Spolsky 写了一篇好文章,但我记不得标题了。他所说的问题是Java和其他跨平台UI的问题是“你的狗对我的应用程序叫嚣”,即微小的不一致性会让人们感到烦恼。


1
谁会想让他们的应用程序看起来像 MOTIF!?!?它就像是界面工具包中的 COBOL! - slacker

1

我很快就要为我的跨平台应用程序编写自己的GUI层。

根据您的应用程序复杂程度,这可能只需要QT、GTK或FOX所需的一小部分。

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

当底层技术变得越来越相同时,操作系统供应商除了品牌化平台的外观和感觉之外别无选择。


1

是的。

但说真的,这取决于你的目标。我同意,原生的UI库经过大量的努力投入,会给出更好的结果,但对于许多应用程序来说,一个非常基本的UI就足够了,而且如果你选择现有的跨平台框架之一,所需的工作量要少得多。

也许从CLI开始,并使功能正常运行对于音频转换应用程序来说是最合理的。


0

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上进行平稳测试)............


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接