Evg*_*eev 30 c++ windows gtk user-interface wxwidgets
我需要编写一个应用程序,它与Windows XP/Vista/7本机编写的内容在视觉上无法区分,使用最现代的Visual Studio默认设置.但我正在开发使用MinGW和Vim(用C++编写).
特别是,我希望以下控件在以上三个版本的Windows上是原生的:表单铬,按钮,复选框,菜单,组合框,进度条,滚动条,富文本框.这对我来说已经足够了.
我知道如果您加载GdiPlus和其他类似的东西riched32.dll
,并使用Windows API来实例化控件,那么操作系统将替换其版本的GdiPlus或其他库,因此它看起来像XP上的XP风格控件,Vista上的Vista,等等
但我不想使用普通的Windows API,因为即使检索默认字体也需要半页代码,而且类似的故事无论我想做什么.所以我想使用工具包.
wxWidgets,Qt,GTK +,FLTK似乎是使用最广泛的.但它们都是跨平台的.我使用过跨平台应用程序,其中许多都有外部GUI控件(我称之为小部件).所以我的问题是:这些工具包中的哪一个可以生成上面列出的真正的原生外观UI控件,正确显示在上面列出的三个版本的MSWin上?
我在谷歌图片中输入了每个+"窗口",但很难说,除了FLTK可能无法做到.你们中的许多人必须从头脑中知道答案......
VZ.*_*VZ. 26
除了实现细节之外,wxWidgets的理念是,并且一直都是尽可能地本地化.我们wxWidgets开发人员并不总能实现与本机应用程序无法区分的目标,但我们始终努力做到这一点.AFAIK对于Qt来说这不是一个重要的目标,绝对不是GTK +,所以在我(显然有偏见)的意见中,如果你认真为用户提供最佳体验,wxWidgets是你的最佳选择,特别是在OS X下.
为了更准确地回答您的问题,您在上面列出的所有内容都是使用wxWidgets for Windows中的本机控件实现的(尽管在其他平台下本地不提供富文本控件).
lib*_*rce 25
我不会谈论FLTK,因为我不知道.
wxWidgets API根据我自己的经验非常难看,因为它有太多的方法只能在一个或另一个平台上使用,因为除非你解决它,否则它们会变成非便携式的东西.与GTK +和Qt不同,它还在其用作后端的工具包之上添加了自己的错误层.但是,它使用本机工具包时很难拥有平台的本机外观.
GTK + 3在Windows上仍有一些粗略的优势,自GTK + 3.6以来它正式支持.GTK +项目委托MSYS2项目分发Windows二进制文件.由于你已经在使用MinGW,这几乎就是同一种环境.它们与GTKmm具有良好的C++绑定.但是,您可能需要做一些工作才能获得适合您的Windows版本的主题.
Qt是跨平台C++开发的不错选择,主要目标是Windows,试图模仿平台的原生外观,但也有自己的主题限制.
总而言之,只有2个方法:
两者都有其优点和缺点.
归档时间: |
|
查看次数: |
24253 次 |
最近记录: |