近期,对wxWidgets框架进行了断断续续的摸索,基本确定将它作为今后开发个人桌面小工具的首选技术,并打算对其设计逻辑和源代码进行适当探索。
上一篇关于wxWidgets的文章介绍了如何安装编译源代码、引入props配置文件,从而创建一个可运行的wxWidgets项目。但在实际项目开发过程中,开发环境配置只是第一步,要保证开发效率,还需要一整套流程来应对前端界面和后端业务交互迭代的情况。
推荐使用wxFormBuilder进行wxWidgets项目的前端界面设计,具体的使用方式有多种:①直接使用该工具生成的C++代码;②直接使用该工具生成的XRC资源文件;③使用XRC资源文件编译得到的C++代码。
以上第②种方式生成的程序在运行时必须附带XRC资源文件,而采用第①、③种方式时,资源文件可以嵌入程序,发行更方便。另外,使用wxFormBuilder生成代码时,最好不要手动调整这些生成代码,防止前端界面更新迭代时覆盖手动调整的内容。
推荐采用方式③进行前端界面开发,在此基础上探索wxWidgets项目的最佳开发流程。本文示例代码也可以作为wxWidgets项目的开发模板。
基本项目配置
- 新建VC++空项目
- 设置“配置属性——链接器——系统——子系统”为“窗口 (/SUBSYSTEM:WINDOWS)”
- 导入wxWidgets-3.2.4\wxwidgets.props项目配置文件,无需手动设置头文件路径和依赖库
- 新建main.cpp文件,定义wxApp的派生类(程序启动类)
#include "wx/wx.h"
class MyApp :public wxApp {
public:
virtual bool OnInit();
};
wxIMPLEMENT_APP(MyApp);
bool MyApp::OnInit() {
if (!wxApp::OnInit())
return false;
return true;
}
wxFormBuilder设计GUI
- 新建wxFormBuilder项目,设置文件名,设置生成XRC文件
- 设计窗体
- 生成XRC代码
将XRC编译成C++代码
wxWidgets源码安装路径下有XRC编译器源码(wxWidgets-3.2.4\utils\wxrc\),需要手动编译,编译完成之后得到wxrc.exe可执行文件。
- wxrc.exe基本用法
- wxrc.exe -c:将XRC编译成cpp源文件,用来替代XRC文件
- wxrc.exe -c -e:除了生成上述cpp源文件外,还可以生成额外的头文件,头文件中已经获得了各控件的指针变量。
- 编译XRC:wxrc.exe -c -e resource.xrc
- 项目生成时自动编译XRC:设置xrc文件的配置属性,添加自定义