wxWidgets学习 (1) -- Hello World 详解

本文介绍了wxWidgets,一个跨平台的C++ GUI框架,强调其原生界面、完全免费、可移植性和发布便捷等优点。同时,文章提到了环境部署的复杂性和程序体积较大等问题。通过一个Hello World程序,详细解析了wxWidgets的使用,包括包含头文件、派生wxApp类、创建主窗口、事件绑定和事件表的实现。虽然在某些教程中推荐使用Bind函数绑定事件,但在作者的环境中遇到了问题。最后,给出了Hello World程序的完整代码。
摘要由CSDN通过智能技术生成

wxWidgets 是一个跨平台的 C++ GUI 框架,和 qt 其实是一类东西。
简单介绍一下wxWidgets的优点:
一、原生界面
wx 不像 java swing 这样,在所有平台都使用相同的外观,也不像qt那样靠模仿平台外观达到“以假乱真”的效果,wx就是对平台API的封装。
二、完全免费
使用wxWidgets编写软件,不论是个人还是商业用途,都是完全免费的,假如你修改了wxWidgets的代码,则必须公开出来。
三、可移植性和发布
这两点放在一起说,因为它们的共同点都是可以很方便的把程序拿到其他设备上使用。跨平台就是一份代码,不需要修改就能在其他平台上编译成可执行文件运行。发布方便是指可以编译成单个可执行文件并静态链接,用户只需下载一个exe,不需要附加一堆dll,也不需要什么特殊的运行环境。我测试过编译好的exe可以在win2003, xp, win7 和 win10运行。
四、其他
wxWidgets相对其他框架来说可能比较小众,但是不用担心,wxWidgets社区非常活跃,github上托管的项目每天都会更新,也有非常棒的官方文档。
缺点:
环境部署比较麻烦,程序体积相对原生api编译的程序大得多,没有非常好用的可视化开发环境。


关于开发环境部署,这里不会详细介绍,按照 官网 的教程来做就可以了,上面的步骤非常详细。我用的是MinGW32位编译器,wxWidgets 3.0.4版本,我的编译指令是这样的:

mingw32-make.exe -j4 -f makefile.gcc SHARED=0 MONOLITHIC=1 BUILD=release

-j4 使用4个cpu,SHARED=0 是静态链接。


下面步入正题,Hello World 程序的分析。
Hello world 例程是官方教程里的第一个程序,可以作为以后编写其他程序的框架。
下面是使用32位mingw编译的同一个exe(7MB)在不同版本windows上运行的结果

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值