要使用C++来开发跨平台的GUI应用程序是可能的,而且还有很多能够让开发变得容易得多的类库。在本文中,我会列出三个类库,并讨论其优势和劣势。
Borland最近发布了其第三版的Kylix开发产品,它是基于CLX类库的。这个版本允许同时使用C++和Object Pascal开发。如果你使用Delphi或者C++ Builder进行过任何开发,那么其学习曲线几乎是不存在的(即,不需要太多工夫就能够适应)。
其不足之处在于,它是一个商业产品。这之所以成问题是因为你不得不担心许可证的管理。这可能是相当昂贵的——有时候要为每个开发用户支付超过1,500美元的费用。还有个问题是它只支持很少几个Linux的发行版。Kylix要求目标机器和开发机器上都有可以使用的KDE。
尽管有这些不足之处,第三版的Kylix是一个让软件的迅速编写成为享受的成熟产品。
WxWindows是一个非常成熟的开放源代码项目。其许可证是自由使用的,因此你能够尽心开发自己的项目,而不需要担心许可证的问题。可以使用这个库的目标平台是Windows、UNIX(GTK)和Mac。WxWindows的UNIX版本要依赖于GTK库作为其后端;这就意味着它不是捆绑到某个特定的桌面平台上的。由于这是一个开发源代码的项目,所以就没有任何先期的费用,例如许可证的购买,而你也不用担心许可证的管理。有一个可用的商业集成开发环境(IDE)能够支持这个库。其文档是完整的,并一直保持更新。
使用这个库来进行开发可能是我在本次讨论实际开发专栏里所讨论的三个库里最简单的,不幸的是,它没有商业级支持,但是你通常可以通过新闻组和IRC来获得开放源代码风格的支持。
Qt库是一个由Trolltech提供的商业库。这个库实行双许可证制,一种是商业的按每个开发者付费的许可证,而另一种是叫做QPL的开放源代码许可证,这同GPL很类似,能让最终用户使用源代码。
这个库是以源代码的形式发布的,其目标平台既可以是Windows也可以是各种UNIX。使用Qt库进行开发要比使用wxWindows库稍稍容易一点,而要比使用Kylix来开发困难一些。有几个IDE可以和Qt一起使用。Qt的另一个好处是它不是捆绑某个特定UNIX桌面环境的,即使KDE是以Qt为基础的。对于商业许可证性质的库,Qt提供了对其的支持。
Qt库的双许可证特性使得许可证的管理变得很复杂。首先,你必须决定自己的项目要使用哪种许可证。例如,你可能要启动一个内部的项目,并使用QPL(这对于内部项目来说是可以的),后来你想要将这个项目转为商用。你现在就有了一个问题,因为从法律上讲,你不能够随意地转换许可证的模式。如果选择了商业许可证的话,你还必须处理好许可证的管理和许可证的直接费用。
上面我所讨论过的三个库之中,应该有一个能够为你的项目提供适当的特性和价格结合点。所有这些库及其相关的工具都可以从相应的Web网站上下载,所以在决定要在自己的项目里使用哪一个之前,你可以免费地试用这些库和工具。
文本作者Mike Owens是一名Allscripts Healthcare解决方案的软件工程师,他从事软件行业已逾八年。