实验四 qt编写简单的计算器

上传人:小** 文档编号:69712701 上传时间:2019-01-14 格式:DOC 页数:17 大小:1.24MB
返回 下载 相关 举报
实验四 qt编写简单的计算器_第1页
第1页 / 共17页
实验四 qt编写简单的计算器_第2页
第2页 / 共17页
实验四 qt编写简单的计算器_第3页
第3页 / 共17页
实验四 qt编写简单的计算器_第4页
第4页 / 共17页
实验四 qt编写简单的计算器_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《实验四 qt编写简单的计算器》由会员分享,可在线阅读,更多相关《实验四 qt编写简单的计算器(17页珍藏版)》请在金锄头文库上搜索。

1、实验四 Qt编写简单的计算器一、 【实验目的】1) 熟悉QtCreator的简单操作。2) 了解Qt程序编写框架。3) 了解信号和槽机制,熟练掌握信号与槽在应用程序中的使用。二、 【实验内容】1) 查看API手册,学习简单的Qt类的使用,如QLineEdit、QPushButton等。2) 用QtCreator创建工程,用Qt编写计算器程序。3) 对计算器程序进行移植。三、 【实验步骤】1. 创建工程1) 打开QtCreator,如图1所示。图12) 选择File-New File or Project,然后在弹出的对话框中选择Other Project-Empty Qt project(如图

2、2所示),然后进入下一步。图23) 定义新工程的工程名并选择保存路径(如图3所示),然后进入下一步。图34) 选择Qt版本,这里选择使用Qt4.7.1,取消对Qt in PATH的选择(如图4所示),然后进入下一步,完成新工程的创建(如图5所示)。图4图52. 计算器程序的实现计算器程序主要分以下两部分工作:一是实现计算器的图形界面;二是实现按键事件和该事件对应的功能绑定,即信号和对应处理槽函数的绑定。1) 计算器图形界面的实现通过分析计算器的功能我们可知,需要16个按键和一个显示框,同时考虑到整体的排布,还需要水平布局器和垂直布局器。通过组织这些类我们可以实现一个简单的带有数字09,可以进行

3、简单四则运算且具有清屏功能的计算器。对于这些类的具体操作会在后面的代码中详细说明。2) 信号和对应槽函数的绑定分析计算器的按键我们可以把按键事件分为以下三类,一是简单的数字按键,主要进行数字的录入,这类按键包括按键09;二是运算操作键,用于输入数学运算符号,进行数学运算和结果的显示,这类按键包括“+”,“-”,“*”,“/”,“=”;三是清屏操作键,用于显示框显示信息的清除。3) 进入刚才创建的空工程,双击左侧的Calculator.pro,在主编辑框中目前显示Calculator.pro的内容为空,如图6所示。这是因为目前什么文件都没有添加的缘故。图64) 添加文件calculator.h在

4、工程Calculator上面点击右键,然后点击Add New,选择添加C+ Header File(如图7所示),进入下一步后输入文件名calculator.h(如图8所示),然后完成文件的添加。图7图85) 添加文件calculator.cpp和main.cpp与添加文件calculator.h的过程类似,只是在选择文件类型时选择为C+ Source File。完成后可以查看Calculator.pro文件的内容,整个工程的文件结构如图9所示。图93. 计算器程序源代码的分析说明1) 对calculator.h源代码的简要说明#ifndef CALCULATOR_H#define CALCU

5、LATOR_H /对calculator.h头文件的声明#include/包含主窗体类#include/包含按键类#include/包含垂直布局器类#include/包含水平布局器类#include/包含显示框类class Calculator : publicQWidget/计算器继承自主窗体类 Q_OBJECT /必须加上这句,如果要调用信号,槽函数的操作的话public: Calculator(); /计算器类的构造函数 Calculator(); /计算器类的析构函数public slots: /定义各个按键按下后对应操作处理的槽函数voidzeroButtonPress();void

6、oneButtonPress();voidtwoButtonPress();voidthreeButtonPress();voidfourButtonPress();voidfiveButtonPress();voidsixButtonPress();voidsevenButtonPress();voideightButtonPress();voidnineButtonPress();voidaddButtonPress();voidsubButtonPress();voidmulButtonPress();voiddivButtonPress();voidclearButtonPress()

7、;voidequButtonPress();private:QLineEdit *operateEdit;/声明显示框QPushButton *zeroButton;/声明数字按键QPushButton *oneButton;QPushButton *twoButton;QPushButton *threeButton;QPushButton *fourButton;QPushButton *fiveButton;QPushButton *sixButton;QPushButton *sevenButton;QPushButton *eightButton;QPushButton *nineB

8、utton;QPushButton *clearButton;/声明运算符按键QPushButton *addButton;QPushButton *subButton;QPushButton *divButton;QPushButton *mulButton;QPushButton *equButton;QHBoxLayout *firstLayout;/声明水平布局器,该布局器主要对16个按键进行布局QHBoxLayout *secondLayout;QHBoxLayout *thirdLayout;QHBoxLayout *fourthLayout;QVBoxLayout *mainLa

9、yout;/声明垂直布局器,该布局器主要对主窗体上面的空间进行排布QString input1;/计算器第一个运算操作数QString input2;/计算器第二个运算操作数char operate;/运算符;#endif/ CALCULATOR_H2) 对calculator.cpp源代码的简要说明首先是构造函数的实现:Calculator:Calculator()operateEdit = newQLineEdit(this);/初始化显示框operateEdit-setReadOnly(true); /设置显示框为只读operateEdit-setText(tr(0);/初始化显示框显示

10、数据为0zeroButton = newQPushButton;/初始化按键zeroButton-setText(tr(0);/设置按键上显示的标签,以下对按键相关的操作类似oneButton = newQPushButton;oneButton-setText(tr(1);twoButton = newQPushButton;twoButton-setText(tr(2);threeButton = newQPushButton;threeButton-setText(tr(3);fourButton = newQPushButton;fourButton-setText(tr(4);fiv

11、eButton = newQPushButton;fiveButton-setText(tr(5);sixButton = newQPushButton;sixButton-setText(tr(6);sevenButton = newQPushButton;sevenButton-setText(tr(7);eightButton = newQPushButton;eightButton-setText(tr(8);nineButton = newQPushButton;nineButton-setText(tr(9);clearButton = newQPushButton;clearBu

12、tton-setText(tr(Clear);addButton = newQPushButton;addButton-setText(tr(+);subButton = newQPushButton;subButton-setText(tr(-);mulButton = newQPushButton;mulButton-setText(tr(*);divButton = newQPushButton;divButton-setText(tr(/);equButton = newQPushButton;equButton-setText(tr(=);firstLayout = newQHBox

13、Layout;/初始化水平布局器firstLayoutfirstLayout-addWidget(zeroButton); /把按键zeroButton添加到firstLayoutfirstLayout-addWidget(oneButton); /把按键oneButton添加到firstLayoutfirstLayout-addWidget(twoButton); /把按键twoButton添加到firstLayoutfirstLayout-addWidget(addButton); /把按键threeButton添加到firstLayout,以下对水平布局器的操作类似secondLayou

14、t = newQHBoxLayout;secondLayout-addWidget(threeButton);secondLayout-addWidget(fourButton);secondLayout-addWidget(fiveButton);secondLayout-addWidget(subButton);thirdLayout = newQHBoxLayout;thirdLayout-addWidget(sixButton);thirdLayout-addWidget(sevenButton);thirdLayout-addWidget(eightButton);thirdLayout-addWidget(mulButton);fourthLayout = newQHBoxLayout;fourthLayout-addWidget(nineButton);fourthLayout-addWidget(clearButton);fourthLayout-addWidget(equButton);fourthLayout-addWidget(divButton);mainLayout = newQVBoxLayout(this);/初始化垂直布局器m

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号