使用wxWidgets开发跨平台的GUI程序

使用wxWidgets开发跨平台的GUI程序

Taii/回家念经  2006-05-20

1、探索背景:

1.1 引言

   从开始使用c/c++编码起算来也快有5年了,期间完成了无数项目,编写了无数程序,而且大部分程序都是同时完成win32/*nix的版本,但是跨平台的都限于win32 console/*nix textmode模式,一直为拘泥于PSDK/MFC而不能很好地完成快速开发cross-platform的GUI程序嘘嘘,今日兴起,开始探索。

   毫无疑问,一种比较理想的Cross-Platform GUI开发库是存在很大需求的,通常的选择包含以下几种:Java、Qt、FLTK(Fast Light Tool Kit)、FOX、SDL (Simple DirectMedia Layer)、Allegro、GTK+、Kylix(based on Qt)/Mozilla framework等等。

   本文所关注的wxWidgets是个GUI API库,可以被python、perl、c++、java、lua、c#、basic、ruby等语言调用。主页:http://wxwidgets.sourceforge.net

1.2 比较
  
1.2.1 Java

   首先说明一下,Java是Platform,而wxWidgets是API库,所以二者的比较可能并不具备平等的条件。
   虽然Java可以实现跨平台的GUI程序,但本质上并不是Java语言跨平台,而是Java虚拟机跨平台,换句话说Java并不是Native Code,它是介于编译语言和脚本语言之间的一种特殊语言,编译期只能完成到Code for Java VM的转换,而真正被编译成bytecode是在运行期完成的(脚本语言的特性),这意味着Java程序第一次启动时需要较长的时间去加载,虽然还有类似GJC的Java Compilers可以一次到位,但大都不能完全并很好地支持Java特性。而wxWidgets被直接编译成机器码,从而获得速度优势。
   另外有意思的是,一些Java库由于性能原因而采用wxWidgets+C++来编写,如wx4j。
   “Write once,run anywhere”的伟大思想似乎在Java VM中实现得并不是很好,当然不能说wxwidgets避免了所有的问题,但事实上它做得确实不错。
   就开发速度而言,考虑BCBX选用的UI库就是wxWidgets,因此可以比较使用BCBX和Java开发界面的速度区别。

1.2.2 Qt

   Qt并不是真正的C++程序,而需要一种特殊被称为Meta Object Compiler(MOC)的预编译技术。对Qt了解不多,不说了。

1.2.3 FLTK

   FLTK是轻量级的GUI库,而wxWidgets具有完全的特性,如支持网络、打印等。wxWidgets特性列表参见:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
使用wxWidgets进行跨平台程序开发非常方便,可以轻松地创建适用于Windows、Mac和Linux等多个操作系统的应用程序wxWidgets是一个开源的GUI开发框架,提供了丰富的功能和组件,可以帮助开发者快速构建用户友好的界面。 首先,wxWidgets提供了一套相对简单且一致的API,使得开发者可以使用相同的代码在不同的平台上开发应用程序。无论是在Windows还是在Mac系统上,都可以使用相同的代码进行开发,大大提高了开发效率。 其次,wxWidgets支持多种编程语言,包括C++、Python和Perl等。这就意味着开发者可以选择自己熟悉的编程语言进行开发,而无需学习新的语言。这样大大减少了学习成本和开发门槛。 另外,wxWidgets提供了丰富的控件和工具,可以满足各种不同应用程序的需求。无论是创建简单的对话框还是复杂的图形界面,都能够通过wxWidgets来实现。同时,wxWidgets还支持多线程和网络编程等功能,使得开发者能够更轻松地实现各种需求。 此外,wxWidgets还提供了详细的文档和示例代码,方便开发者学习和使用开发者可以通过阅读文档和查看示例代码来了解如何使用wxWidgets进行开发,并解决遇到的问题。 总之,使用wxWidgets进行跨平台程序开发是一种高效且便捷的方式。它提供了丰富的功能和组件,支持多种编程语言,为开发者提供了详细的文档和示例代码。通过使用wxWidgets开发者可以快速构建适用于多个平台的应用程序

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值