用于 C 的跨平台高级小部件工具包

Posted

技术标签:

【中文标题】用于 C 的跨平台高级小部件工具包【英文标题】:Cross-platform high-level widget toolkits for C 【发布时间】:2010-04-06 17:00:06 【问题描述】:

是否有任何用于 C 的高级、跨平台和抽象(使用简单)的小部件工具包,既轻量级又快速,或者可以为其他工具包编译,例如 Qt 和 GTK+?

编辑: 大多数 C++ 库都缺少 C 绑定,因此它们几乎没有(或没有)帮助。

【问题讨论】:

gtk 本身是跨平台的,并且是用 C 编写的 【参考方案1】:

enlightenment 实现了真正的跨平台,从 Windows CE 到 WIndows 7,从 Linux 到嵌入式 Linux,从 Mac OS 到 Mac OS X,它轻巧

www.enlightenment.org

【讨论】:

hmm.. 我从来没有用过它,虽然它似乎没有 C 投标:/ 虽然 C 可能不需要绑定(因为它本身可能写在 C 中)你应该在你的 onw 上进行调查那... Enlightenment Foundation 库是用 C 编写的,但我一直在寻找更便携的东西。 “更便携”哪种方式更便携?如果您有进一步的限制,请告诉我们,这样我们就不需要在黑暗中刺伤...... EFL 尚未完全移植到 Win* 平台。见trac.enlightenment.org/e/wiki/EFLWindowsVS。【参考方案2】:

所有 GUI 工具包都有其怪癖,需要一些时间来熟悉。

如果你的意思是纯 C,那么GTK+ 是最有可能的选择,我熟悉的其他任何一个都是用 C++ 编写的,所以 C++ 是它们的本地语言绑定。我用 C 语言用 GTK+ 编写了一个简单的应用程序,一旦你习惯了 container 布局控制方法,它就会变得非常合理。它在GNU LGPL 2.1 下获得许可。

另一个影响选择的因素是许可要求,通常是您使用的是特定许可的开源还是专有应用程序。

wxWidgets 使用LGPL-like 许可证来允许开源和专有使用。

Qt 在various licenses、GPL、LGPL 和非免费(免费)商业许可下可用,并且本机是 C++ 绑定。

【讨论】:

我可能会动态链接,所以许可要求不是我的大问题。我一直在寻找比列出的三个更轻量级的东西。 您能否更具体地定义“轻量级”或“高级”?你想要一个跨平台的 GUI 工具包还是一个绘图库(我在想 Cario,cairographics.org)。由于可移植性成本,跨平台基本上从来都不是轻量级的。例如。 Java。【参考方案3】:

我的选择是 FLTK (http://www.fltk.org),但它和前面提到的 wxWidgets 都不是用于 C 的。它们是 C++ 库。

【讨论】:

以上是关于用于 C 的跨平台高级小部件工具包的主要内容,如果未能解决你的问题,请参考以下文章

是否有用于 python 的良好规划 GUI 组件(小部件)?

用于颜色选择的jQuery UI小部件(类似于Microsoft Office 2010中的小部件)。

php 从Beaver Builder 2.0 UI取消设置修订并将窗口小部件从窗口小部件移动到标准版或高级版。

php 从Beaver Builder 2.0 UI取消设置修订并将窗口小部件从窗口小部件移动到标准版或高级版。

用于动态小部件更新的 Twitter 小部件方法

Qt入门系列开发教程高级控件篇QTableWidget表格小部件