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安装配置方法及opencv配置方法

codeblocks是一种非常有名的开源IDE,在windows下最好用的IDE非Visual Studio莫属,但是在linux下,个人认为codeblocks是最好用的IDE,下面来讲一下我在ub...
  • lhanchao
  • lhanchao
  • 2016年12月02日 23:27
  • 2803

ubuntu下如何安装codeblocks集成开发环境

codeblocks是一个十分优秀的C/C++开发IDE,虽然后起之秀codelite目前来看大有超越之势哦。 不过在ubuntu下安装codeblocks却比较麻烦,不像其他linux发行版,比如...
  • mydo
  • mydo
  • 2015年04月11日 19:29
  • 3093

ubuntu下codeblocks起步(三)

  • Q_Jizi
  • Q_Jizi
  • 2007年10月01日 00:50
  • 2878

ubuntu下codeblocks起步(八)

ubuntu下codeblocks起步-图像处理这是一个简单的图像处理程序,实现了位图的透明处理。有时候我们希望只获得一幅图片的部分内容,而将其他部分进行透明处理。当然,现在的很多图...
  • Q_Jizi
  • Q_Jizi
  • 2007年10月16日 19:53
  • 1499

ubuntu下codeblocks起步(二)

  关于codeblocks 上一篇文章转载了xinlnix 对code::blocks(以下简称C::B)的看法,在工程设计的开始,我也想谈一下自己对应用...
  • Q_Jizi
  • Q_Jizi
  • 2007年10月01日 00:48
  • 1734

ubuntu下codeblocks起步(一)

新一代跨平台C++开发工具Code::Blocks简介
  • Q_Jizi
  • Q_Jizi
  • 2007年10月01日 00:46
  • 3286

ubuntu 16.04LTS 下Code::Blocks + Opencv3.3开发环境配置

AI菌老铁们,AI菌来也准时更推是AI菌的信仰(啪啪,艹,好像拖更了)不过没关系毕竟好内容永不为奴最近AI菌沉迷于搭建ubuntu下的OpenCV的编程环境,在进行各种尝试后,今天就来给大家分享一下A...
  • x1kz18NkbQg
  • x1kz18NkbQg
  • 2017年12月08日 00:00
  • 131

codeblocks-ubuntu-change theme

参考: http://blog.csdn.net/gzshun/article/details/8294305 http://www.cnblogs.com/platero/p/3518850.ht...
  • zcliatb
  • zcliatb
  • 2014年12月15日 14:52
  • 1181

Ubuntu下源码编译CodeBlocks

Ubuntu下源码编译CodeBlocks SVN版本
  • Neroldycs
  • Neroldycs
  • 2015年10月13日 15:14
  • 1109

ubuntu下codeblock安装与opencv配置

最近在用OpenCV做东西,之前写了一篇在Windows下配置CodeBlocks+OpenCV2.0的文章。昨天心血来潮装了一个Ubuntu,于是也把CodeBlocks装上了,又装上了OpenCV...
  • lien0906
  • lien0906
  • 2015年04月01日 15:17
  • 929
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ubuntu下codeblocks起步(四)
举报原因:
原因补充:

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