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

时间:2008-08-29 10:17:09

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

在我作为程序员的工作中,我将用C ++编写一个程序,用于将音频文件转换为各种格式。可能这将涉及构建一个简单的GUI。

使用Cocoa和WinForms而不是像Qt或GTK这样的跨平台工具包为Mac和Windows构建单独的GUI是否会付出很大的努力?
(无论如何,我必须保持单独的Windows版本和Mac版本)
GUI可能非常简单,只需要非常基本的功能。

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

7 个答案:

答案 0 :(得分:8)

如果您拥有专业知识,请使用原生前端,它将有效地将您必须完成的工作量增加一倍,但根据我的经验,非原生用户界面比他们的原生用户界面略显笨拙。

答案 1 :(得分:7)

你看过wxWidgets了吗?跨平台本机控件。

答案 2 :(得分:3)

跨平台工具包或多或少都会做出错误的假设,即平台之间的差异是按钮放置和小部件样式的问题。在某些情况下,你可以逃脱这一点 - 一个Qt应用程序将在Windows(UI约定非常宽松)和Linux,特别是KDE环境中感觉相当原生。通常,您可以相对轻松地在Linux和Windows之间移动;约定类似,Windows社区对它们不严格。

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

但总的来说,在本机应用程序中,以更多方式说出平台的本地语言,而不仅仅是小部件样式。

答案 3 :(得分:2)

我同意,如果可能的话,本地前端是要走的路。我最近没有使用wxWidgets,我听说它已经走了很长一段路,但是当它是wxWindows时,我们用它构建了一个应用程序,它是用X / Motif构建的。当我们完成工作并交付时,客户说它看起来不像X / Motif,我们不得不自费重新使用整个UI ...... Joel Spolsky写了一篇很好的文章,但我可以不记得标题。他所说的,IIRC,是Java的问题,其他一些跨平台的用户界面是“你的狗在我的应用程序上咆哮” - 这是让人们烦恼的一点点不一致。

答案 4 :(得分:1)

但严重的是,这取决于你的目标。我同意原生的UI库,通过大量的努力,可以提供更好的结果,但对于许多应用程序来说,如果你采用一个现有的跨平台框架,一个非常基本的UI就足够了,而且工作量要少得多

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

答案 5 :(得分:1)

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

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

当底层技术变得越来越相同时,操作系统供应商就无法选择平台的外观和感觉。

答案 6 :(得分:0)

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

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

在Linux桌面上开发您的应用程序,并为Raspberry Pi2提供编译器(Raspbian Jessie上的目标应用程序测试工作)............