一个比较完整的wxWidget项目
将shell式的PC软件,改造成扁平的wxWidget软件
1. 分析shell
当你第一次分析一个比较长的shell程序时,肯定会头晕,找不着如何下手.我是看了将近两遍的.
第一次,整体看一遍,把不了解的命令查出来,标注释.
第二次,用笔记录逻辑分支,把整个大程序,按功能分解成小程序块.
2.理清设计思路
1.画UML,确定逻辑顺序. (这可能会在后期设计界面和写代码的时候,进行属性改动,没事,这是初手必经之路,不可能一次定型)
2.根据UML,和之前的功能分析,画出界面草图.
3.生成工程,开始设计实现界面.
根据界面进行编码实现
formbuilder (wxFormBuilder界面文件)
----------------gui.fbp(主界面)
----------------child1gui.fbp(子界面)
----------------child2gui.fbp
include(具体功能实现的.h文件)
-----------main.h(派生于gui.h)
-----------child1.h(i派生于child1gui.h)
-----------child2.h
-----------common.h(通用的方法头文件)
-----------otherfun.h(其它模块)
resources(界面相关的实现cpp和.h头文件)
----------------gui.cpp
----------------gui.h
----------------child1gui.cpp
----------------child1gui.h
----------------child2gui.cpp
----------------child2gui.h
src(具体功能实现的cpp文件)
------------main.cpp
------------child1.cpp
------------child2.cpp
------------common.cpp
------------otherfun.cpp
|
|
**备注:**界面设计和实现依赖于gui.h再派生.h的方法,具体是:在wxFormBuilder中,设计好界面,然后点击Tools | Generate InheritedClass(或F6)启动Generate Inherited Class(生成继承类向导)的办法在
wxFormBuilder中生成子类
代码开发中的总结
1.得到system里命令的返回值
//得到system里命令的返回值
string Common::getCmdResult(const string &strCmd)
{
char buf[10240] = {
0};
FILE *pf = NULL;
if( (pf = popen(strCmd.c_str(), "r")) == NULL ) {