当前位置: 首页 > 软件库 > 程序开发 > GUI开发框架 >

wxWidgets

跨平台 GUI 框架
授权协议 LGPL
开发语言 C/C++
所属分类 程序开发、 GUI开发框架
软件类型 开源软件
地区 不详
投 递 者 潘琪
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

wxWidgets是一个开源的跨平台的C++构架库(framework),它可以提供 GUI(图形用户界面)和其它工具。支持所有版本的Windows、带GTK+或Motif的Unix和MacOS。

wxWidgets在最开始是由爱丁堡(Edinburgh)大学的人工智能应用学院开发的,主要是内部使用,而在1992年第一次公布。 并且由Julian Smart, Robert Roebling, Vadim Zeitlin, Vaclav Slavik和更多其他的人所编写和维护。

wxWidgets的主体是由C++构建的,但你并不是必需通过C++才能使用wxWidgets.wxWidgets拥有许多其它语言的绑定(binding),使你在用其它语言编写程序的时候也可以使用wxWidgets.

wxwidgets是一个 c++编写的用来提供gui开发的框架。它包含一个可以支持现今几乎所有操作系统(Version 2 currently supports all desktop versions of MS Windows, Unix with GTK+, Unix with Motif, and MacOS. An OS/2 port is in progress.)的GUI库和其他一些很有用的工具,提供了类似MFC的功能。而且,特别要说一下,这个c++lib还的新版本还提供了对掌上电脑的 支持。当然,说到这里很多人会想到java队多系统的支持,其实这是不一样的,java的跨平台是建立在“中间代码”的基础上的,就是说需要在目标平台上 安装java解释器;但是wxwidgets是c++库,经过编译后,他提供的是native级的机器码,在gui编程方面,这可是意味着很大的不同!

那么wxwidgets有什么特别之处呢?比起其他的跨平台gui库,有什么好处呢?

1、(不得不放在第一位的)就是他无论对于个人还是对于商业应用都[font color=#ff0000]免费[/font]!
——它的主体框架的授权协议支持商业免费应用,其外围功能库中很多也是lgpl授权的,这无疑对于我等“0资本”的人来说是天大的好事。不同于gt之类的跨平台gui库。
2、 他是跨平台的gui库,支持的操作系统很全面,甚至支持pda(说不定过一段时间他都能够支持symbian了)。
—— 此跨平台非彼跨平台,它虽然不像java那样是“全面”的,而仅仅是gui库,但是gui是计算机编程中,最为麻烦、耗费时间、容易出现bug的部分,特 别当你想要自己的软件运行在多个操作系统上的时候,开发和维护的难度让人难以想象。其实c++也是支持“跨平台”的,因为c++可以在任何平台上编译运 行,之所以没几个人说他是跨平台的,主要问题就出在变量长度和各操作系统的gui(这里的“界面”我指得是很广义的)上,如果解决了gui的问题,基本上 就解决了c++的“跨平台”问题——至少不用为每种平台都维护一份源代码了。
3、 wxwidgets提供的gui是大量使用宏的,这就意味着它是在尽可能的使用目标系统native的gui样式。
——你可以访问wxwidgets网站,看看那些开发的软件的截图,全是系统native级别的。如果你开发了一个xp系统的软件的话,你的软件会仍然以“xp专有的‘小贱人’级别”的面貌展现在你面前。
4、 它支持的编译器也很多,而且borland也曾声明将在c++builderx2里边提供对wxidgets的支持——预览版都出来了。
——其实我就是看到borland在c++不景气的时候,这么看重这个东东,甚至用它来做“王牌”,才开始注意到他的。当然,反过来,也正是borland的支持,才使他活力大发的。
5、 自然,有牛X支持,而且是开源的,wxwidgets一直都在快速稳健的开发中,其周边工具也越来越多。
—— 随着m$开始全力支持他的.net,c++成了“没落”的语言,但是不可否认,c++还是有很多用武之地的,所以根本不可能真正没落。没有了超牛X的支 持,地球人自然开始寻求新的发展方式,wxwidgets这种开源免费,且允许商业应用的好东东,自然会被人们所重视。
当然,wxwidgets也有一些不足,比如官方文档不全(至少我觉得个官方的help远远不 够我的菜鸟需求,大部分都是网络上零散的教程),特别是没有源代码的开发速度快;没有强大全面的rad工具;还没有形成很浓的产业气候,等等。但是,个人 觉得它的好处绝对大于它的缺点,而且很有发展前途。

在线文档:http://tool.oschina.net/apidocs/apidoc?api=wxwidgets

  • 概述 wxWidgets由爱丁堡大学的Julian Smart于1992年创立。最初是一个用于创建在Unix和Windows上可移植的应用程序的项目,后来它已成长为支持MacOS,GTK+以及许多其他工具包和平台的界面库(有关更多详细信息,请参见“历史”页面)。为该项目做出贡献的开发人员数量现在为数百人,工具包也有强大的用户群,其中包括从开源开发人员到公司开发人员等很多人。那么,与其他跨平台GUI

  • wxWidgets:从零开始构建wxWidgets程序 wxWidgets是一款跨平台GUI开发框架,它可以让你使用一份代码编写可在不同操作系统上运行的应用程序。本文将介绍如何从零开始构建一个wxWidgets程序。 在开始之前,确保你已经安装了wxWidgets,并设置了正确的环境变量。 第一步:快速创建wxWidgets应用程序 为了便于快速创建一个wxWidgets应用程序,我们将使用IDE

  • wxWidgets:文档/视图框架 大多数应用程序框架中都有文档/视图框架,因为它可以极大地简化构建多种应用程序所需的代码。 这个想法是,您可以主要根据文档对应用程序进行建模以存储数据并在其上提供独立于接口的操作,以及用于可视化和操作数据的视图。文档知道如何输入和输出给定的流对象,视图负责从物理窗口获取输入并对文档数据执行操作。 如果文档的数据发生更改,则应更新所有视图以反映更改。该框架可以提供许

  • 这是关于wxWidgets的C++编程指南,wxWidgets是一个跨平台的GUI开发工具包或开发框架(当然它也可开发非GUI应用程序),学习完本指南,你就会使用wxWidgets编写一些小程序了 目录 目录 wxWidgets简介 wxWidgets C++编程语言 编程语言 多平台编程 安装wxWidgets wxWidgets的辅助工具 控制台(console)应用 wxString类 实用

 相关资料
  • 问题内容: 将在官方网站上MongoDB的GUI客户端应用程序的列表已经过时:某些客户端不支持,有些是严重势必.NET和Linux上运行的不是。而且它们都缺乏编辑已存储文档的能力(即提供只读访问权限)。 我需要一个GUI客户端: 适用于Linux(但不适用于Web); 免费; 支持文档编辑。 是否有满足这些要求的应用程序? 问题答案: Robomongo-跨平台MongoDB GUI客户端 更新:

  • 多平台支持 Mpx支持在多个小程序平台中进行增强,目前支持的小程序平台包括微信,支付宝,百度,qq和头条,不过自2.0版本后,Mpx支持了以微信增强语法为base的跨平台输出,实现了一套业务源码在多端输出运行的能力,大大提升了多小程序平台业务的开发效率,详情可以查看template增强特性 不同平台上的模板增强指令按照平台的指令风格进行设计,文档和代码示例为了方便统一采用微信小程序下的书写方式。

  • 本文向大家介绍JavaScript跨平台的开源框架NativeScript,包括了JavaScript跨平台的开源框架NativeScript的使用技巧和注意事项,需要的朋友参考一下 NativeScript是一款使用JavaScript语言来构建跨平台原生移动应用的开源框架,支持iOS、Android和Windows Phone。且NativeScript的使用没有过多繁杂的要求,只需使用自己已

  • 我需要在我的应用程序中为不同的标签指定不同的FontFamily。我需要使用默认字体(如Android的Roboto和iOS的Helvetica)及其修改(如轻、中、粗)。据我所知,我应该使用Roboto-Light和Helvetica-Light来获得字体的轻版本(中号和粗体相同)。除了这个需求之外,我还需要在XAML中设置字体(如文档中所描述的),所以我最终得到了以下代码 然而,在Androi

  • 作为第三代数据统计和分析平台,诸葛实现了对用户的实名(实账号)分析,并主张互联网产品分析以用户为中心的分析思想并提供了一系列方法论。对用户的唯一标识来源于企业自身数据库对用户的唯一识别符,也即诸葛底层数据采集是以用户为中心的采集,我们提供了跨平台分析版本, 满足企业以用户为中心的整体的分析需求,不同平台相同业务价值下的用户完整的故事解读(例如:分析电商的用户在PC端浏览产品,在移动端支付的转化率)

  • 说明 由于在跨端开发中,必不可少的会遇到不同端需要有不同实现的情况。参考滴滴chameleon中的多态,megalo中实现了类似的跨平台兼容方案。需要使用时,请保证@megalo/target的版本号大于或等于0.7.2。 js的跨平台兼容 megalo中下面两种形式的引用会被特殊处理: [path-to-name]/[name]/index.mpjs [path-to-name]/[name]

  • 问题内容: 我想在Unix和Windows上使用特定于平台的目录。请看一下代码: 这个输出 我想第二次打电话给(windows)类似 是否可以告诉我在Windows上运行的程序使用Windows分隔符?还是应该始终将反斜杠转换 为正斜杠()?这里首选的策略是什么? 问题答案: 我看到“问题”在哪里。在golang-nuts上的讨论为我提供了提示,该提示始终使用并且是用于依赖平台的操作的函数。 在W