关于c ++:我应该使用跨平台的GUI工具箱还是依靠本机工具箱?

关于c ++:我应该使用跨平台的GUI工具箱还是依靠本机工具箱?

Should I use a cross-platform GUI-toolkit or rely on the native ones?

在担任程序员的同时,我要用C ++编写一个程序,以将音频文件与其他格式进行相互转换。 可能这将涉及构建简单的GUI。

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

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


如果您具有专业知识,请使用本机前端,它可以有效地将UI的工作量增加一倍,但根据我的经验,非本机UI会比其本机UI笨拙。


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


跨平台工具包或多或少都错误地假设平台之间的差异是按钮位置和小部件样式的问题。在某些情况下,您可以避免使用它-Qt应用程序在Windows(UI习惯非常宽松)和Linux(尤其是KDE环境)上都感觉很原生。通常,您可以相对轻松地在Linux和Windows之间切换。约定相似,Windows社区对此并不严格。

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

但是,总的来说,在本机应用程序中,使用平台方式的本地语言比使用窗口小部件样式更容易。


我同意,如果可能的话,本机前端是可行的方法。我最近没有使用过wxWidgets,我听说它已经走了很长一段路,但是回到wxWindows时,我们就用它构建了一个应在X / Motif中构建的应用程序。当我们完成工作并将其交付时,客户表示它看起来不像X / Motif,因此我们不得不自费重新加工整个UI。JoelSpolsky在此方面写了一篇不错的文章,但是我可以不记得标题了。他所说的IIRC,是Java和其他一些跨平台UI的问题是"您的狗叫我的应用程序吠叫"-这是使人们烦恼的一点矛盾之处。


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

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

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


是。

但是说真的,这取决于您的目标。我同意,本机UI库会付出很多努力,它们会带来更好的结果,但是对于许多应用程序来说,如果您采用现有的跨平台框架之一,那么非常基本的UI就足够了,而工作量却更少。

对于音频转换应用程序而言,也许从CLI开始并使其正常工作最有意义。


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


推荐阅读