纯X现在已经很难以移植了。基本上有三种主要的工具包:
它们都相当可比,所以选择哪一个是个人口味的问题。这三个工具包都可以运行在主流的三个操作系统上,尽管在Mac和Windows上,GTK+有点棘手。
根据你的要求,如果你需要一个C++的窗口小部件库,我建议使用QT;GTK也不错,但它是为C语言创建的(就像GNU项目中许多为C编写的库一样,C优于C++)。
在创建应用程序时,没有人直接使用X;唯一与X直接交互的人是创建新的窗口小部件库的人,正如其他人在此已经提到的那样。
GTK+是一个跨平台的程序,可以在大多数Linux发行版和Windows上运行。
当然,还有Qt和WxWidgets这些跨平台的工具。
在我看来,最好的C++ GUI工具包是Qt http://qt.nokia.com
它是跨平台的(Windows,Mac OS X,Linux),高效并且有很多不错的扩展(Qwt,Qwt3d,QGLViewer等)
另一方面,如果你想要学习GUI编程,我建议学习一些系统,包括GTK,Tk,Motif。
我建议你去找一本关于GUI的通用书籍。我曾经使用过Borland、Windows、wxWidgets、QT和PEG窗口框架。总之,没有标准,但GUI系统是“事件驱动”的。学习“事件驱动”编程应该会给你一个很好的基础。
我认为你可以从wxWidgets开始。
如果您最熟悉和感兴趣的是C语言,GTK+是一个不错的起点。如果是C++,QT可能更适合您。您选择的桌面环境也是一个因素。Gnome使用GTK+,KDE使用QT。
原始的X编程过于低级,不适合初学者。很少有程序直接针对X API进行编写。一直以来都有在其上层的工具包。一些较旧的工具包是Motif(Lesstif)和Athena。不过不要尝试从这些开始,它们现在已经非常老了。