- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验四-Qt编写简单的计算器
实验四-Qt编写简单的计算器
PAGE
实验四-Qt编写简单的计算器
实验四 Qt编写简单的计算器
【实验目的】
熟悉QtCreator的简单操作。
了解Qt程序编写框架。
了解信号和槽机制,熟练掌握信号与槽在应用程序中的使用。
【实验内容】
查看API手册,学习简单的Qt类的使用,如QLineEdit、QPushButton等。
用QtCreator创建工程,用Qt编写计算器程序。
对计算器程序进行移植。
【实验步骤】
创建工程
打开QtCreator,如图1所示。
图1
选择File-New File or Project,然后在弹出的对话框中选择Other Project-Empty Qt project(如图2所示),然后进入下一步。
图2
定义新工程的工程名并选择保存路径(如图3所示),然后进入下一步。
图3
选择Qt版本,这里选择使用,取消对Qt in PATH的选择(如图4所示),然后进入下一步,完成新工程的创建(如图5所示)。
图4
图5
计算器程序的实现
计算器程序主要分以下两部分工作:一是实现计算器的图形界面;二是实现按键事件和该事件对应的功能绑定,即信号和对应处理槽函数的绑定。
计算器图形界面的实现
通过分析计算器的功能我们可知,需要16个按键和一个显示框,同时考虑到整体的排布,还需要水平布局器和垂直布局器。通过组织这些类我们可以实现一个简单的带有数字0~9,可以进行简单四则运算且具有清屏功能的计算器。对于这些类的具体操作会在后面的代码中详细说明。
信号和对应槽函数的绑定
分析计算器的按键我们可以把按键事件分为以下三类,一是简单的数字按键,
主要进行数字的录入,这类按键包括按键0~9;二是运算操作键,用于输入数学运算符号,进行数学运算和结果的显示,这类按键包括“+”,“-”,“*”,“/”,“=”;三是清屏操作键,用于显示框显示信息的清除。
进入刚才创建的空工程,双击左侧的,在主编辑框中目前显示的内容为空,如图6所示。这是因为目前什么文件都没有添加的缘故。
图6
添加文件
在工程Calculator上面点击右键,然后点击Add New,选择添加C++ Header File(如图7所示),进入下一步后输入文件名(如图8所示),然后完成文件的添加。
图7
图8
添加文件和
与添加文件的过程类似,只是在选择文件类型时选择为C++ Source File。完成后可以查看文件的内容,整个工程的文件结构如图9所示。
图9
计算器程序源代码的分析说明
对源代码的简要说明
#ifndef CALCULATOR_H
#define CALCULATOR_H
}
根据前面对按键事件的分析,有数字输入键,运算操作符输入键和清屏键三种,故对每种事件的槽响应函数都只说明一种,其他依此类推。
数字输入键响应槽函数,以按键“1”为例:
void Calculator::oneButtonPress()
{
if(input2==0)//如果当前显示框为0
{
input2=1;//变0为1
}
else//如果当前显示框不为0
{
input2= operateEdit-text();
(tr(1));//在显示的数据后面追加1
}
operateEdit-setText(input2);//更新显示框中的显示信息
}
运算操作符输入键响应槽函数,以按键“+”为例:
void Calculator::addButtonPress()
{
floatfirst,second;
input2= operateEdit-text();//把当前显示的数据保存到运算操作数2中
if(operate == 0)//如果是第一次按下运算符键
{
input1 = input2;//把运算操作数2中的数据保存到运算操作数1中
input2= 0;//清除运算操作数2中的数据
operate = +;//把运算符键置’+’
}
Else//如果是第二次按下运算符键
{
second=();//把运算操作数2中的数据转化为浮点类型
first=();//把运算操作数1中的数据转化为浮点类型
switch(operate)//根据当前的运算符判断做何操作
{
case+:first = first+second;break;
case-:first = first-second;break;
case*:first = first*second;break;
case/:first = first/second;b
文档评论(0)