wxformbuilder
1、打开wxFormBuilder,按开始一个空项目。您也可以执行File|New来创建新项目
2、从Object Properties(对象属性)面板配置项目的设置
A、选择产生什么类型的代码。 现在你可以生成C++和/或XRC代码。
B、设置生成文件的文件名(只有名称,没有扩展名)。
C、为您的项目输入一个名称。
D、设置代码生成的路径。相对路径“.” 将导致代码生成和项目文件相同的目录中。
E、如果你想所有的文件引用您的项目(例如图像)产生一个相对路径,请选中relative_path 选项 。
F、保存项目。
3、转到组件面板,然后按一下Forms标签。 然后,创建一个对话框,按一下第三个图标
现在在对话框中显示的对象树。
4、现在您可以在对话框中的Object Properties(对象属性)面板配置属性。 例如,改变对话框名称为TutorialDialogGui 。 这个名字也将要产生的C++类的名称
5、在此之后,您准备填入您的对话框的控制和sizers 。 wxFormBuilder只支持基础布局的Sizer,所以你将不得不增加一个Sizer能够插入控制。 转到组件面板,并点击Layout(布局)标签。 然后,点击第一个图标创建一个方块Sizer
6、添加一些控制到Sizer,例如,两个按钮。去Common(通用)标签,并按下第一个图标()两次。
7、在Object Properties(对象属性)面板的label property 中更改图标的标签。 例如,将第一个按钮的标签的属性设为&Show a message,第二个为&Close。同样,分别设置第一个和第二个按钮的id 属性为ID_SHOWMESSAGE和wxID_OK
第一个按钮的属性设置。
8、现在,现在是时候增加事件处理程序的按钮。在Object Properties(对象属性)面板中切换到Events标签。 设定第一个按钮的OnButtonClick的值为OnShowMessage,第二个按钮的值设置为OnClose
第一个按钮的Events
9、现在,你可以生成代码了!按F8 或 。 如果一切正确的话,在状态栏中你会看到一条消息表示代码已成功产生。 您可以在C++标签中查看输出的代码
10、现在是把生成的代码集成到您的IDE(Visual C++, Dev-C++, Code::Blocks...)中的时候了。加所产生的文件(tutorial_gui.h/CPP)到你的Project(项目)中
11、每次从wxFormBuilder生成的代码时,你的文件将被最后一次产生的代码所覆盖,所以你不能直接增加你的事件处理程序到该文件中。因此,从Tools | Generate Inherited Class(或F6)启动Generate Inherited Class(生成继承类向导)的办法在 wxFormBuilder中生成子类
继承类生成对话框
12、选择Form的名称TutorialDialogGui ,你可以修改所产生的类的名称
选定Form的名称
13、修改类的名称为TutorialDialog,文件名为tutorial,请确保选中该框,然后单击“OK”(确定)
名称变了,Form也选中了。
14、点击“确定”的对话框中,如果一切顺利的话您会看到一个“类生成的”消息在状态栏中。你可以在的保存项目文件目录下找到生成的代码文件tutorial.cpp和tutorial.h
头文件如下:
#ifndef __tutorial__
#define __tutorial__
#include "tutorial_gui.h"
class TutorialDialog : public TutorialDialogGui
{
public:
TutorialDialog( wxWindow* parent );
};
#endif // __tutorial__
这是例程的源文件:
#include "tutorial.h"
TutorialDialog::TutorialDialog( wxWindow* parent ) : TutorialDialogGui( parent ) {
}
15、现在,您需要添加的执行你的事件处理程序的到生成类TutorialDialog。 事件表是产生tutorial_gui文件中,因此您只需要添加函数到TutorialDialog类。 这里有两个文件的事件处理程序需要添加
在头文件看起来就像这样:
#ifndef __tutorial__
#define __tutorial__
#include "tutorial_gui.h"
class TutorialDialog : public TutorialDialogGui
{
public:
TutorialDialog( wxWindow* parent );
protected:
// Event handlers
void OnShowMessage( wxCommandEvent& event );
void OnClose( wxCommandEvent& event );
};
#endif // __tutorial__
这是例子的源文件:
#include "tutorial.h"
#include <wx/msgdlg.h>
#include <wx/app.h>
TutorialDialog::TutorialDialog( wxWindow* parent )
:
TutorialDialogGui( parent )
{
}
void TutorialDialog::OnShowMessage( wxCommandEvent& event ) {
wxMessageBox( wxT("wxFormBuilder Tutorial") );
}
void TutorialDialog::OnClose( wxCommandEvent& event )
{
wxTheApp->Exit();
}
16、你现在缺少主应用的源文件。 新增两个新的文件到您的项目,并在OnInit() 函数中创建对象的类TutorialDialog 的wxApp派生类
在头文件看起来可能会像这样:
#ifndef __WXWIDGETSAPP_H
#define __WXWIDGETSAPP_H
#include <wx/wx.h>
class wxWidgetsApp : public wxApp
{
public:
wxWidgetsApp();
virtual ~wxWidgetsApp();
virtual bool OnInit();
};
DECLARE_APP(wxWidgetsApp)
#endif
源文件看起来可能会像这样:
#include "wxWidgetsApp.h"
#include "tutorial.h"
IMPLEMENT_APP(wxWidgetsApp)
wxWidgetsApp::wxWidgetsApp()
{
}
wxWidgetsApp::~wxWidgetsApp()
{
}
bool wxWidgetsApp::OnInit()
{
TutorialDialog* dialog = new TutorialDialog( (wxWindow*)NULL );
dialog ->Show();
SetTopWindow( dialog );
return true;
}
wxformbuilder的更多相关文章
- 痞子衡嵌入式:极易上手的可视化wxPython GUI构建工具(wxFormBuilder)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是wxPython GUI构建工具wxFormBuilder. 一.手工代码布局GUI界面的烦恼 如果你曾经设计过上位机软件GUI界面,初 ...
- wxformbuilder在python如何使用
1使用builder 创建界面并进行布局 2选择python选项 得到相应代码 将代码保存在 一个py文件里面 创建一个新的入口文件 main.py import wx import UIfile c ...
- wxWidgets界面开发工具wxFormBuilder的使用
wxFormBuilder 下载地址:http://download.csdn.net/detail/lsmallstop/7013401 安装完成后,打开wxFormBuilder,可以在左侧工程子 ...
- wxPython 自动提示文本框
1.原版和例子都在这里 在浏览器的地址栏,或者在百度.google 输入文字的时候,输入框的下面会把有关的项目都提示出来. wxPython 没有提供类似的控件,google 了一下,发现了一个,很好 ...
- Python GUI开发环境的搭建
原文:Python GUI开发环境的搭建 最近对Python的开发又来了兴趣,对于Python的开发一直停留在一个表面层的认识,玩的部分比较大. Python的入手简单,语法让人爱不释手,在网络通信方 ...
- python_在windows下安装配置python开发环境及Ulipad开发工具
最近开始学习Python,在网上寻找一下比较好的IDE.因为以前用C#做开发的,用Visual Studio作为IDE,鉴于用惯了VS这么强大的IDE,所以对IDE有一定的依赖性. Python的ID ...
- wxWidgets的安装编译、相关配置、问题分析处理
wxWidgets的安装编译.相关配置.问题分析处理 一.介绍部分 (win7 下的 GUI 效果图见 本篇文章的最后部分截图2张) wxWidgets是一个开源的跨平台的C++构架库(framewo ...
- python gui编程
1.准备工作 下载PyCharm 3.4(选择他的原因:1.有破解版,2.它的默认风格是PEB风格,一旦不符合PEB风格就会有提示) 下载并且安装界面设计工具wxFormBuilder 给python ...
- Desktop Ubuntu 14.04LTS/16.04科学计算环境配置
Desktop Ubuntu 14.04LTS/16.04科学计算环境配置 计算机硬件配置 cpu i5 6代 内存容量 8G gpu GTX960 显存容量 2G(建议显存在4G以上,否则一些稍具规 ...
随机推荐
- javascript 计算倒计时
function timeDown(second) { var month = '', day = '', hour = '', minute = ''; if (second >= 86400 ...
- [洛谷P1168]中位数(Splay)/(主席树)
Description 给出一个长度为N的非负整数序列A[i],对于所有1 ≤ k ≤ (N + 1) / 2,输出A[1], A[2], -, A[2k - 1]的中位数.即前1,3,5,--个数的 ...
- 2018年江西理工大学C语言程序设计竞赛(高级组) 三角平方数
题目描述 三角数:形如图a,圆点摆放成等边三角形的数字,则为三角数. (图a) 平方数:形如图b,小方块摆放成正方形的数字,则为平方数. (图b) 那么如果一个数字既是三角形数又是平方数,则称为三角平 ...
- mybatis是如何防止sql注入?
sql注入发生的时间,sql注入发生的阶段在sql预编译阶段,当编译完成的sql不会产生sql注入 采用jdbc操作数据时候 String sql = "update ft_proposal ...
- JS 小数处理
parseInt(7/2);//丢弃小数部分,保留整数部分 Math.ceil(7/2);//向上取整 Math.floor(7/2);//向下取整 Math.round(7/2);//四舍五入 // ...
- IOS开发---菜鸟学习之路--(十二)-利用ASIHTTPRequest进行异步获取数据
想要实现异步获取的话我这边了解过来有两个非常简单的方式 一个是利用ASIHTTPRequest来实现异步获取数据 另一个则是利用MBProgressHUD来实现异步获取数据 本章就先来讲解如何利用AS ...
- python中subprocess.Popen的args和shell参数的使用
subprocess模块定义了一个类: Popen class subprocess.Popen( args, bufsize=0, executable=None, ...
- csu-2018年11月月赛Round2-div1题解
csu-2018年11月月赛Round2-div1题解 A(2191):Wells的积木游戏 Description Wells有一堆N个积木,标号1~N,每个标号只出现一次 由于Wells是手残党, ...
- 理解机器为什么可以学习(二)---Training versus Testing
前边由Hoeffding出发讨论了为什么机器可以学习,主要就是在N很大的时候Ein PAC Eout,选择较小的Ein,这样的Eout也较小,但是当时还有一个问题没有解决,就是当时的假设的h的集合是个 ...
- BZOJ 4827 [Shoi2017]分手是祝愿 ——期望DP
显然,考虑当前状态最少需要几步,直接贪心即可. 显然我们只需要考虑消掉这几个就好了. 然后发现,关系式找出来很简单,是$f(i) f(i+1) f(i-1)$之间的. 但是计算的时候并不好算. 所以把 ...