wxWidgets->使用wxFormBuild+CodeBlocks编写wxWidgets工程
2011-09-22 19:52
609 查看
wxFormBuild主要用于界面和事件接口程序生成,还需要在CodeBlocks中添加事件反应程序和App用户应用程序.
1. 使用CodeBlocks新建wxWidgets工程
可以使用CodeBlocks自带的wxWidgets工程向导或者是我们自定义的wxempty工程向导,新建工程,保存在D:\test\Cpp\wxtst\wxtst.cbp
从工程中移除所有的文件,使工程为一个不含任何文件的空工程.
2. 使用wxFormBuild新建wxFormBuild工程
在wxFormBuild中,在右侧Object Properties中设置工程参数,这里设置如下
path>.
(这里设置wxFormBuild生成文件的目录与wxFormBuild工程的相对路径,
若保存wxFormBuild工程目录为D:\test\Cpp\wxtst\,则生成程序文件所在目录也为D:\test\Cpp\wxtst\
若这里设置为.\wxFormBuildFiles,则生成程序文件所在目录也为D:\test\Cpp\wxtst\wxFormBuildFiles\)
file>HelloWorldGui
relative_path>checked
code_generaltion C++>checked
然后保存工程在D:\test\Cpp\wxtst\wxtst.fbp
3. 使用wxFormBuild添加控件,设置控件属性,添加控件事件
在wxFormBuild中,按之前编写的HelloWorld工程及后边的事件方法,依次添加控件,
-点击添加Forms分类中的第1个Frame,添加MyFrame1
-在MyFrame1中,点击添加Layout分类中的第1个wxBoxSizer,添加bSizer1
-在bSizer1中点击添加Containers分类中的第1个wxPanel,添加m_panel1
-在m_panel1中点击添加Layout分类中的第1个wxBoxSizer,添加bSizer2
-在bSizer2中点击添加Common分类中的wxButton,添加m_button1
并分别修改MyFrame1的属性title为HelloWorld,修改m_button1的label属性为Quit,
为m_button1的Events属性分类里的OnButtonClick添加OnQuit
然后保存工程,点击Generate Code,生成代码HelloWorldGui.cpp,HelloWorldGui.h
4. 使用wxFormBuild 生成事件响应类
在wxFormBuild中,点击菜单Tools>Generate Inherited Class,选中刚才生成的MyFrame1类,修改Class和File Name为,MyProject1MyFrame1,点击ok,生成MyProject1MyFrame1.cpp,MyProject1MyFrame1.h
5. 在CodeBlocks中添加wxFormBuild生成的文件,添加事件反应代码
在CodeBlocks中添加HelloWorldGui.cpp,HelloWorldGui.h,MyProject1MyFrame1.cpp,MyProject1MyFrame1.h到工程中,修改MyProject1MyFrame1.cpp中的事件反应代码,(还需要添加你新增代码用到的头文件)
#include "MyProject1MyFrame1.h"
#include <wx/app.h>
MyProject1MyFrame1::MyProject1MyFrame1( wxWindow* parent )
:
MyFrame1( parent )
{
}
void MyProject1MyFrame1::OnQuit( wxCommandEvent& event )
{
// TODO: Implement OnQuit
wxTheApp->Exit();
}
6. 在CodeBlocks中添加App应用程序代码及文件
为CodeBlocks工程添加,MyApp.h和MyApp.cpp,编译运行即可.
MyApp.h如下,需要添加#include<wx/wx.h>
#ifndef MYAPP_H_INCLUDED
#define MYAPP_H_INCLUDED
#include<wx/wx.h>
class MyApp : public wxApp
{
public:
MyApp();
virtual ~MyApp();
virtual bool OnInit();
};
DECLARE_APP(MyApp)
#endif // MYAPP_H_INCLUDED
MyApp.cpp如下,需要添加App头文件和事件类的头文件,#include "MyApp.h",#include "MyProject1MyFrame1.h"
#include "MyApp.h"
#include "MyProject1MyFrame1.h"
IMPLEMENT_APP(MyApp)
MyApp::MyApp()
{
}
MyApp::~MyApp()
{
}
bool MyApp::OnInit()
{
MyProject1MyFrame1* myframe = new MyProject1MyFrame1((wxWindow*)NULL);
myframe->Show();
return true;
}
1. 使用CodeBlocks新建wxWidgets工程
可以使用CodeBlocks自带的wxWidgets工程向导或者是我们自定义的wxempty工程向导,新建工程,保存在D:\test\Cpp\wxtst\wxtst.cbp
从工程中移除所有的文件,使工程为一个不含任何文件的空工程.
2. 使用wxFormBuild新建wxFormBuild工程
在wxFormBuild中,在右侧Object Properties中设置工程参数,这里设置如下
path>.
(这里设置wxFormBuild生成文件的目录与wxFormBuild工程的相对路径,
若保存wxFormBuild工程目录为D:\test\Cpp\wxtst\,则生成程序文件所在目录也为D:\test\Cpp\wxtst\
若这里设置为.\wxFormBuildFiles,则生成程序文件所在目录也为D:\test\Cpp\wxtst\wxFormBuildFiles\)
file>HelloWorldGui
relative_path>checked
code_generaltion C++>checked
然后保存工程在D:\test\Cpp\wxtst\wxtst.fbp
3. 使用wxFormBuild添加控件,设置控件属性,添加控件事件
在wxFormBuild中,按之前编写的HelloWorld工程及后边的事件方法,依次添加控件,
-点击添加Forms分类中的第1个Frame,添加MyFrame1
-在MyFrame1中,点击添加Layout分类中的第1个wxBoxSizer,添加bSizer1
-在bSizer1中点击添加Containers分类中的第1个wxPanel,添加m_panel1
-在m_panel1中点击添加Layout分类中的第1个wxBoxSizer,添加bSizer2
-在bSizer2中点击添加Common分类中的wxButton,添加m_button1
并分别修改MyFrame1的属性title为HelloWorld,修改m_button1的label属性为Quit,
为m_button1的Events属性分类里的OnButtonClick添加OnQuit
然后保存工程,点击Generate Code,生成代码HelloWorldGui.cpp,HelloWorldGui.h
4. 使用wxFormBuild 生成事件响应类
在wxFormBuild中,点击菜单Tools>Generate Inherited Class,选中刚才生成的MyFrame1类,修改Class和File Name为,MyProject1MyFrame1,点击ok,生成MyProject1MyFrame1.cpp,MyProject1MyFrame1.h
5. 在CodeBlocks中添加wxFormBuild生成的文件,添加事件反应代码
在CodeBlocks中添加HelloWorldGui.cpp,HelloWorldGui.h,MyProject1MyFrame1.cpp,MyProject1MyFrame1.h到工程中,修改MyProject1MyFrame1.cpp中的事件反应代码,(还需要添加你新增代码用到的头文件)
#include "MyProject1MyFrame1.h"
#include <wx/app.h>
MyProject1MyFrame1::MyProject1MyFrame1( wxWindow* parent )
:
MyFrame1( parent )
{
}
void MyProject1MyFrame1::OnQuit( wxCommandEvent& event )
{
// TODO: Implement OnQuit
wxTheApp->Exit();
}
6. 在CodeBlocks中添加App应用程序代码及文件
为CodeBlocks工程添加,MyApp.h和MyApp.cpp,编译运行即可.
MyApp.h如下,需要添加#include<wx/wx.h>
#ifndef MYAPP_H_INCLUDED
#define MYAPP_H_INCLUDED
#include<wx/wx.h>
class MyApp : public wxApp
{
public:
MyApp();
virtual ~MyApp();
virtual bool OnInit();
};
DECLARE_APP(MyApp)
#endif // MYAPP_H_INCLUDED
MyApp.cpp如下,需要添加App头文件和事件类的头文件,#include "MyApp.h",#include "MyProject1MyFrame1.h"
#include "MyApp.h"
#include "MyProject1MyFrame1.h"
IMPLEMENT_APP(MyApp)
MyApp::MyApp()
{
}
MyApp::~MyApp()
{
}
bool MyApp::OnInit()
{
MyProject1MyFrame1* myframe = new MyProject1MyFrame1((wxWindow*)NULL);
myframe->Show();
return true;
}
相关文章推荐
- Ubuntu下Codeblocks+wxWidgets编程,学生公寓管理系统,基于窗体(使用wxFormbuilder拉取控件)。C++,sqlite3
- Ubuntu下Codeblocks+wxWidgets编程,学生公寓管理系统,基于窗体(使用wxFormbuilder拉取控件)。C++,sqlite3
- wxWidgets学习笔记(二):使用wxFormBuilder、wxWidgets和Code::Blocks创建GUI程序
- [原创]CODE::BLOCKS+wxWidgets+MinGW+wxFormBuilder在windows下开发GUI程序
- CODE::BLOCKS+wxWidgets+MinGW+wxFormBuilder在windows下开发GUI程序
- Windows上配置 Code::Blocks + wxWidgets + ( wxSmith | wxFormBuilder )
- [wxWidgets]_[初级]_[使用wxFormBuilder设计XRC文件快速开发界面]
- wxFormbuileder中wxwidgets的布局控件(layout)的使用
- 关于Codeblocks+wxWidgets的使用问题
- spring3 jsp页面使用<form:form modelAttribute="xxxx" action="xxxx">报错,附连接数据库的spring MVC annotation 案例
- [wxWidgets]_[初级]_[使用wxFormBuilder设计XRC文件快速开发界面]
- 在Code::Blocks上使用wxWidgets-2.8.0 (一)——安装篇
- The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>)
- MarkdownPad使用心得小窍门--> 开源code编辑工具
- The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>)
- 在Code::Blocks上使用wxWidgets-2.8.0 (二)——开发篇
- 不使用WxSmith和WxFormBuilder生成界面,手工输写基于WxWidgets程序的配置方法
- wxWidgets & Code::Blocks Studio环境搭建
- CodeBlocks+wxWidgets编写控制台程序
- 在Code:Blocks使用MinGW编译wxWidgets库