我应该使用跨平台的GUI工具箱还是依靠本机工具箱?
在担任程序员的同时,我要用C ++编写一个程序,以将音频文件与其他格式进行相互转换。可能这将涉及构建简单的GUI。
使用Cocoa和WinForms而不是Qt或者GTK等跨平台工具包为Mac和Windows构建单独的GUI会是一项巨大的努力吗?
(无论如何,我将必须维护单独的Windows版本和Mac版本)
GUI可能非常简单,只需要非常基本的功能。
我一直觉得本地GUI比跨平台的弟兄感觉更直观...
解决方案
回答
如果我们具有专业知识,请使用本机前端,它将有效地将UI的工作量增加一倍,但根据我的经验,非本机UI会比其本机UI笨拙。
回答
是的。
但是说真的,这取决于目标。我同意本机UI库会付出很多努力,它们会带来更好的结果,但是对于许多应用程序来说,如果我们采用现有的跨平台框架之一,那么非常基本的UI就足够了,而工作量却更少。
对于音频转换应用程序而言,也许从CLI开始并使其正常工作最有意义。
回答
我们看过wxWidgets了吗?跨平台本机控件。
回答
我同意,如果可能的话,本机前端是可行的方法。我最近没有使用过wxWidgets,我听说它已经走了很长一段路,但是回到wxWindows时,我们就用它构建了一个应在X / Motif中构建的应用程序。当我们完成工作并将其交付时,客户表示它看起来不像X / Motif,因此我们不得不自费重新加工整个UI。JoelSpolsky在此方面写了一篇不错的文章,但是我可以不记得标题了。他所说的IIRC,是Java和其他一些跨平台UI的问题,就是"狗叫我的应用程序吠叫",这是使人们烦恼的一点矛盾之处。
回答
我将为此很快编写自己的跨平台应用程序GUI层。
根据我们应用程序的复杂性,这可能只是QT,GTK或者FOX的一小部分。
原因是我们看到了平台供应商(首先是Apple)试图在此设计系统的趋势,以使其看起来独特。这使得QT,GTK,FOX和其他平台工具难以不断与最新的小部件保持同步。
当底层技术变得越来越相同时,操作系统供应商别无选择,然后在平台的外观和品牌上打上烙印。
回答
跨平台工具包或者多或者少都错误地假设平台之间的差异是按钮位置和小部件样式的问题。在某些情况下,我们可以通过使用Qt应用程序在Windows(UI约定非常宽松)和Linux(特别是KDE环境)上感觉很原生。通常,我们可以相对轻松地在Linux和Windows之间切换。约定相似,Windows社区对此并不严格。
Mac是最难的一员。它的UI是与Windows或者大多数Linux环境完全不同的范例构建的。
但是总的来说,在本机应用程序中,使用平台方式的本地语言比使用窗口小部件样式更容易。