我需要编写一个应用程序,这个应用程序与Windows XP / Vista / 7本地编写的应用程序在视觉上没有什么区别。 但我正在开发使用MinGW和Vim(在C + +中)。
特别是,我希望以下三个版本的Windows本机上的控件: forms铬,button,checkbox,菜单,combobox,进度条,滚动条,富文本框 。 这对我来说就够了。
我知道,如果你根据需要加载GdiPlus和其他类似riched32.dll
东西,并使用Windows API来实例化控件,那么操作系统会replace它的GdiPlus或其他库的版本,所以它将看起来像XP,Vista在Vista上等
但我不想使用普通的Windows API,因为即使是检索默认字体也需要半个页面的代码,以及类似的故事,无论我想要做什么。 所以我想用一个工具包。
wxWidgets,Qt,GTK +,FLTK似乎是最广泛使用的。 但是他们都是跨平台的。 我已经使用了跨平台的应用程序,其中许多有外国的GUI控件(我称之为小部件)。 所以我的问题是: 这些工具包中的哪一个可以生成上面列出的真正的原生UI控件,在上面列出的三个版本的MSWin上正确显示?
我已经把每一个“窗口”都input到了Google图片中,但是很难说,除了FLTK可能无法做到这一点。 你们中的许多人必须知道你的头顶上的答案…
从我自己的经验来看,wxWidgets API是相当丑陋的,而且在Windows上GTK 3目前还不是足够跨平台的,它的C ++绑定正在寻找一个新的维护者。 Qt看起来是跨平台C ++开发的最佳选择,其主要目标是Windows。
编辑:自3.6以来,GTK 3在Windows下正式得到支持
除了实现细节外,wxWidgets的哲学始终是尽可能原生的。 我们,wxWidgets的开发者,并不总是实现与本地应用程序无差别的目标,但我们总是努力做到这一点。 AFAIK这不是一个Qt的重要目标,绝对不是GTK +,所以在我的(显然是有偏见的)看来,wxWidgets是你最好的选择,如果你是认真的为你的用户提供最好的体验,特别是在OS X下。
要更准确地回答您的问题,上面列出的所有内容都是使用wxWidgets for Windows中的本机控件实现的(尽管在其他平台下本来不支持富文本控件)。
IUP – 可移植用户界面库使用本机小部件,C API和Lua绑定。
我使用java本地跨平台而不改变代码,使用c / c + + wxwidgets专门跨平台,如果你想去一点性能和独立的可执行文件,使用c / c + + winapi的Windows和x11 gnu的Linux本地平台和终端控制台,如果你想让你的软件保持最新状态,可以使用python作为控制台和平台的脚本,并且使用汇编语言来实现一个简单的控制台。 有时我把它们全部与Windows上的共享库.dll和gnu linux上的.so相结合。 我喜欢在做小规模硬件要求的编程研究时做比较性能。