用于GUI应用程序的跨平台C库?

时间:2010-01-07 07:24:48

标签: c user-interface qt graphics cross-platform

免费,易于学习/使用,GUI应用程序的跨平台C库?我在寻找Qt吗?

奖金问题:我可以在Mac上使用上述库/工具包进行开发,然后在PC / Linux上重新编译吗?

超级奖金问题:链接到所述库的教程和/或下载。

事实是,我正在追赶C系列(来自网络开发 - XHTML / PHP / MySQL)来学习iPhone开发。

我知道C不是C ++或ObjectiveC,但我想让学习曲线尽可能简单。不要太偏离主题,但我也在寻找好的入门书籍和网站。我找到了this so far

我试图在这里一石二鸟。我不明白有特定于平台的扩展,但我会尽量避免出于移植目的 我的想法是,我想在一台机器上编写代码,然后编译三次。 (Mac / Win / Linux)如果Objective C将在Windows和Linux以及OS X上编译,那么这很好。如果我必须使用C ++,那也没关系。

9 个答案:

答案 0 :(得分:16)

如果您正在寻找 C ++ 库,那么Qt基本上可以满足您的需求。如果你想坚持纯粹的 C ,那么Qt就不是一个选择。

作为C框架,您可以使用GTK+,它适用于Linux,Windows和OS X.

答案 1 :(得分:9)

看看IUP Toolkit。它主要用C语言编写,也很容易绑定到Lua

答案 2 :(得分:3)

Qt是一个C ++库。您可能考虑的其他跨平台库是wxWidgets(C ++)和GTK(C)。

所有三个库都是完全跨平台的。您还可以查看Tcl / Tk,但这是一个工具包:)。

答案 3 :(得分:3)

另一种选择是Tk,它是一个用C语言编写的GUI库。它带有Tcl,一种也用C语言编写的脚本语言。这些语言是从头开始设计的,嵌入在C程序中。

答案 4 :(得分:3)

要完成这篇文章,Allegro必须在这里=)

http://www.talula.demon.co.uk/allegro/ Allegro游戏库,具有许多图形功能和基本的GUI库

一个明确的gui(非常简单)基于Allegro的库

http://cgui.sourceforge.net/index.html

两个多平台

答案 5 :(得分:3)

我考虑使用的是EFL,因为它非常快,简单,小巧但功能强大。我建议潜入Elementary,他们最简单的GUI工具包,然后,一旦你熟悉它,转移到EDJE,这不是那么简单,但更强大。

答案 6 :(得分:2)

看看Ecere SDK。它提供了一个跨平台的GUI工具包,并为您提供了eC,一种源自C(具有其所有功能)的面向对象语言,非常适合构建GUI。

答案 7 :(得分:1)

您为标记了此问题,这是我关注的标记。但是,您也要问编程。

如果出于某些奇怪的(或域强制的)原因,您认为必须使用C而不是C ++,那么 Qt不适合您。它是从头开始设计为C ++库。

然而,我强烈建议质疑为什么你的项目需要在C中.C ++有很多好处,而且C本质上更好的想法主要是一个神话。有关这方面的一些硬数据,请查看Bjarne Stroustrup的Learning C++ as a New Language

如果你必须坚持C,那么总是有GTK。 GTK+的基础API是C,但是对于名为GTKmm的C ++也存在绑定。从设计的角度来看,我不是它的忠实粉丝,但历史上支持Gnome桌面(Ubuntu的默认设置)......谷歌选择它作为他们的Chrome for Linux版本。所以它在那里有一些信誉和支持。

但请注意,Ubuntu正在选择Qt5在桌面上实现他们的下一版“Unity”:

https://askubuntu.com/questions/281092/why-is-canonical-choosing-qt-over-gtk-for-unitys-next-generation


编辑:您添加了:

  

如果我必须使用C ++,那也没关系。

“必须”是一个强有力的词,但C ++ / Qt与C / GTK之间几乎没有比较。而后者正在成为历史。

答案 8 :(得分:0)

另一种选择,虽然有些人可能有些丑陋但可能很难看:AGUI

手动:http://intron-trans.hu/agui.html

Windows二进制文件:http://intron-trans.hu/agui-bin-mingw-v090b.zip

源代码:http://intron-trans.hu/agui-src-v090b.zip