一个刚接触窗口应用程序的人应该学习X,GTK +,还是什么?

时间:2009-12-17 13:57:44

标签: c++ c user-interface graphics

假设选择值的因素是可用的小部件库,学习曲线的斜率以及可移植性程度(它所使用的平台)。就语言绑定而言,我正在使用C ++。

谢谢!

11 个答案:

答案 0 :(得分:11)

Qt非常好。它有相当大的库(不仅仅是UI)。在很多平台上运行。

答案 1 :(得分:11)

Pure X现在非常硬核,而且不太便携。基本上,有三个主要的工具包:

  • GTK +(和C ++包装器GTKmm)
  • Qt的
  • 的wxWidgets

非常具有可比性,所以选择的是品味问题。虽然Mac和Windows上的GTK +有点尴尬,但三者都在三大操作系统上运行。

答案 2 :(得分:8)

我个人最喜欢的:Qt。它是跨平台的,它非常直观,它有广泛的文档记录,有许多语言的绑定(原文是C ++),用它开发它实际上很有趣。

答案 3 :(得分:3)

除非您计划编写自己的UI工具包,否则直接使用X毫无意义。太辛苦,太多的工作。

在Linux上,您有两个主要选择 - GTK和Qt。两者都很好。 Qt作为原生C ++工具包比GTK本身更好,尽管GTKmm是一个不错的C ++包装器。 GTK往往可以使用比Qt更多的语言,但无论如何你都使用C ++并不重要。

两者都是跨平台的,但GTK在其他操作系统上感觉有点陌生,特别是在Mac OS X上.Qt在Windows上感觉完全原生,在Mac OS X上相当接近。它还提供了很多其他跨平台UI之外的功能,例如线程,文件系统访问,网络等。 Qt肯定似乎在便携性方面取得了胜利,至少。

一般来说,选择一些很受欢迎的东西 - 找到好的例子,你可以解剖的预制应用程序,你可以使用的库,甚至只是在这里找到帮助。

答案 4 :(得分:3)

当您为C ++请求一个小部件库时,我建议使用为该编程语言创建的QT; GTK也很好,但它是为C创建的(因为为GNU项目创建的许多库都使用C语言对C ++进行了特权)。
创建应用程序时没有人直接使用X.唯一直接使用X的人是谁在创建一个新的小部件库,正如其他人在这里报道的那样。

答案 5 :(得分:1)

GTK +它是:在大多数Linux发行版和Windows上运行。

当然还有Qt和WxWidgets是跨平台的。

答案 6 :(得分:1)

在我看来,最好的C ++ GUI工具包是Qt http://qt.nokia.com

它是跨平台(windows,mac os x,linux),高效并且有很多不错的扩展(Qwt,Qwt3d,QGLViewer,...)

另一方面,如果你想了解GUI编程,我会学到很多系统,包括GTK,Tk,Motif。

答案 7 :(得分:1)

我建议获得一本关于GUI的通用书籍。我使用过Borland,Windows,wxWidgets,QT和PEG窗口框架。总之,没有标准,但GUI系统是事件驱动。研究事件驱动的编程,这应该会给你一个很好的基础。

答案 8 :(得分:0)

我认为你可以从wxWidgets开始。

答案 9 :(得分:0)

如果您最熟悉对C感兴趣,那么GTK +是一个很好的起点。如果是C ++,QT可能是更好的选择。您选择的桌面也是一个因素。 Gnome使用GTK +,KDE使用QT。

Raw X编程从低级开始。很少有程序直接针对X API编写。总是有一些工具包层层叠叠。一些较旧的工具包是Motif(Lesstif)和Athena。不要试图从那些开始,他们现在已经很老了。

答案 10 :(得分:0)

我认为还有一个问题没有提及:你想在哪里使用它?

  • 你想“只是学习它”还是你有特定的应用程序?
  • 如果您有申请,也许您还需要考虑:
    • 您打算在
    • 上运行什么操作系统
    • 社区如何支持它:活跃?难道得到帮助吗?
  • 你需要/期望什么表现?
  • 你打算多久支持一次? (你可能决定在几年内运行^ H ^ H ^ Hmove离开C ++,如果是这样,使用不同的语言是否有意义 - 即Java?)