ubuntu下codeblocks起步(四)

原创 2007年10月01日 00:56:00

ubuntucodeblocks起步-简单计算器工程

下面是在code::blocks下设计的一个功能简单的计算器。

通过project wizard建立wxWidgest工程。

选择wxWidgets应用工程。

选择wxWidgets 2.8.x选项,点下一步。

为工程起名字jisuanqi,选择工程保存路径,点下一步。

在“please select your favourite GUI Builder to use.”选项卡中选择“wxSmith”和“Dialog Based”选项。建立一个基于对话框的工程。点下一步。

 

 

 

 


默认选择,点下一步。


在“wxWidgets Library Setting”选项中选择“Use default wxWidgets configuration”,结束。初始有一个默认工程,如下:


直接编译运行,你会看到默认的“Welcome to wxWidgets”对话框。


在这里,我们需要建立自己的对话框工程。选中form中的BoxSizer控件,将其删除,使工程只剩下一个空的form,如下:


在编译器下方选择相应的控件拖入到form中,并修改控件的属性如下:

1、首先选择窗体,修改其Title属性为“计算器”,Width和Height分别为255、310;

2、修改TextCtrl控件属性,Text属性设为空;

3、修改按钮属性,Label属性分别为1、2、3......如下图,Width和Height属性分别为40、32。

调整各控件的属性如下图:


接下来为各个按钮添加响应函数。点击属性面板右上角右边的{ }按钮,进入EVENTS控制面板。选中form中的一个按钮,例如按钮1,点击EVT_BUTTON,在弹出菜单中选择“Add new handler”。为其添加相应函数。


代码设计:

添加四个全局变量 int oper; //保存运算符 wxString oper1; //保存输入的操作数

double a1; //存储第一个操作数 double result; //存储结果

在窗体的构造函数aaaDialog::aaaDialog(wxWindow* parent,wxWindowID id)中进行初始化:

oper=0;

oper1=_T("");

result=0.0;

a1=0.0;

各按钮的相应函数内容如下:

button“1”:

void aaaDialog::OnButton2Click(wxCommandEvent& event)

{

wxString num1=_T("1"); //_T 不同编码环境下的可移植性

TextCtrl1->WriteText(num1) ; //写入TextCtrl

}


button“2”:

void aaaDialog::OnButton3Click(wxCommandEvent& event)

{

wxString num2=_T("2");

TextCtrl1->WriteText(num2) ;

}


button“3”:

void aaaDialog::OnButton4Click(wxCommandEvent& event)

{

wxString num3=_T("3");

TextCtrl1->WriteText(num3) ;

}


button“4”:

void aaaDialog::OnButton5Click(wxCommandEvent& event)

{

wxString num4=_T("4");

TextCtrl1->WriteText(num4) ;

}


button“5”:

void aaaDialog::OnButton6Click(wxCommandEvent& event)

{

wxString num5=_T("5");

TextCtrl1->WriteText(num5) ;

}


button“6”:

void aaaDialog::OnButton7Click(wxCommandEvent& event)

{

wxString num6=_T("6");

TextCtrl1->WriteText(num6) ;

}


button“7”:

void aaaDialog::OnButton8Click(wxCommandEvent& event)

{

wxString num7=_T("7");

TextCtrl1->WriteText(num7) ;

}


button“8”:

void aaaDialog::OnButton9Click(wxCommandEvent& event)

{

wxString num8=_T("8");

TextCtrl1->WriteText(num8) ;

}


button“9”:

void aaaDialog::OnButton10Click(wxCommandEvent& event)

{

wxString num9=_T("9");

TextCtrl1->WriteText(num9) ;

}


button“0”:

void aaaDialog::OnButton11Click(wxCommandEvent& event)

{

wxString num0=_T("0");

TextCtrl1->WriteText(num0) ;

}


button“.”:

void aaaDialog::OnButton12Click(wxCommandEvent& event)

{

wxString nump=_T(".");

TextCtrl1->WriteText(nump) ;

}


button“+”:

void aaaDialog::OnButton1Click1(wxCommandEvent& event)

{

oper1 = TextCtrl1->GetValue(); //获得TextCtrl的内容

oper1.ToDouble(&a1); //wxString转换为double型的

TextCtrl1->Clear(); //清空TextCtrl

oper=0; //0代表+

}


button“-”:

void aaaDialog::OnButton14Click(wxCommandEvent& event)

{

oper1 = TextCtrl1->GetValue();

oper1.ToDouble(&a1);

TextCtrl1->Clear();

oper=1; //1代表-

}


button“x”:

void aaaDialog::OnButton15Click(wxCommandEvent& event)

{

oper1 = TextCtrl1->GetValue();

oper1.ToDouble(&a1);

TextCtrl1->Clear();

oper=2; //2代表*

}


button“/”:

void aaaDialog::OnButton16Click(wxCommandEvent& event)

{

oper1 = TextCtrl1->GetValue();

oper1.ToDouble(&a1);

TextCtrl1->Clear();

oper=3; //3代表/

}


button“=”:

void aaaDialog::OnButton13Click(wxCommandEvent& event)

{

wxString str; //用于保存最终结果的字符串形式

double a2; //第二个操作数

wxString oper2=TextCtrl1->GetValue();

oper2.ToDouble(&a2);

switch(oper){

case 0: result=a1+a2;break;

case 1: result=a1-a2;break;

case 2: result=a1*a2;break;

case 3: result=a1/a2;break;

}

//result

str<<result; //double型转换为wxString型

TextCtrl1->Clear();

TextCtrl1->WriteText(str) ; //显示最终结果

}

编译运行,结果如下:



有关函数请参见http://www.wxwidgets.org/manuals/2.6.3/

相关文章推荐

ubuntu下codeblocks安装文件_上

  • 2009年10月28日 21:06
  • 11.37MB
  • 下载

ubuntu下codeblocks个别设置(改字体/终端)

原文地址:ubuntu下codeblocks个别设置(改字体/终端)作者:隐藏_悲伤 装了codeblocks后觉得默认终端的很不和谐~查了下发现可以改的: 1)Settings->Environ...

Ubuntu下codeblocks安装配置方法及opencv配置方法

codeblocks是一种非常有名的开源IDE,在windows下最好用的IDE非Visual Studio莫属,但是在linux下,个人认为codeblocks是最好用的IDE,下面来讲一下我在ub...

Ubuntu下,Java中利用JNI调用codeblocks c++生成的动态库的使用步骤

1、  打开新立得包管理器,搜索JDK,选择openjdk-6-jdk安装; 2、  打开Ubuntu软件中心,搜索Eclipse,选择Eclipse集成开发环境,安装; 3、  打开Eclips...

ubuntu 下codeblocks的相关配置

1.先把编译环境,C库、C++库和Boost库装好,如下: sudoapt-get install build-essential * 有可能安装 build-essential后gdb就已经安装...

ubuntu下opencv的IDE——codeblocks

ubuntu下codeblocks中opencv的配置

ubuntu下codeblocks opencv2.4.9配置

一.安装 CodeBlocks 安装 codeblocks [plain] view plaincopyprint? # apt-get install codebloc...

ubuntu下codeblocks安装笔记

我使用的是codeblocks_12.11-1.tar.gz包安装。 基本上就是按照: 1.cd  2.tar -xzvf 3.cd 4../configure 5.make...

ubuntu10.04安装codeblocks10.05

ubuntu10.04使用源码安装codeblocks10.05,从准备工作到运行。
  • i7366
  • i7366
  • 2011年05月26日 12:27
  • 1477
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ubuntu下codeblocks起步(四)
举报原因:
原因补充:

(最多只允许输入30个字)