1、利用qt creator进行简单功能计算机设计电 子 科 技 大 学学 生 实 验 报 告 书课 程 名 称 实用嵌入式应用系统设计与实现任 课 老 师 学 生 姓 名 学 生 学 号 学 生 学 院 2014 2015 学年 第 2 学期实验项目名称简单功能计算器的设计实验日期 2015.3.27一、实验内容描述(问题及要求的描述)1.掌握简单功能计算器的设计方法 2.实验要求完成简单功能计算器的设计,要能够完成简单的四则运算,实时更新运算结果。效果图如下:二、实验步骤设计(包括实验方案设计、实验步骤等)采用Qt Designer设计界面实验步骤:1.创建窗体。创建一个Qt Gui应用的项目
2、lesson_test_dialog_Designer,基类选择Qwidget。双击界面文件widget.ui进入Qt Designer进行界面设计。2. 编辑对话框的控件属性、布局和Tab顺序。3. 编辑每个spinBox控件的槽函数,用于实现当spinBox的数值发生变化时,实时更新运算结果。 4. 连接每个spinBox的数值改变信号和对应的槽函数。窗体界面设计如下图:三、实验结果分析(包括结果描述、综合分析)实验结果:1.界面显示:2.当在两个输入上按下上下箭头输入好数字后,计算器自动进行四则运算,输出结果。四、实验代码:(1)返回项目树视图,在头文件widget.h的Widget类添
3、加共有槽函数(在原有代码的基础上添加,划线标记部分为新添加的代码)。添加的代码实现了信号和槽的自动关联#ifndef WIDGET_H #define WIDGET_H #include namespace Ui class Widget; class Widget : public Qwidget Q_OBJECT public: explicit Widget(QWidget *parent = 0); Widget();private slots: void on_doubleSpinBox_1_valueChanged();void on_doubleSpinBox_2_valueCh
4、anged(); void on_doubleSpinBox_3_valueChanged(); void on_doubleSpinBox_4_valueChanged(); void on_doubleSpinBox_5_valueChanged(); void on_doubleSpinBox_6_valueChanged();void on_doubleSpinBox_7_valueChanged();void on_doubleSpinBox_8_valueChanged(); private: Ui:Widget *ui; ; #endif / WIDGET_H 。(2)在源文件w
5、idget.cpp中添加新代码(划线标记),添加的代码实现了每个框进行加减乘除四则运算的功能。#include widget.h #include ui_widget.h Widget:Widget(QWidget *parent) : QWidget(parent), ui(new Ui:Widget) ui-setupUi(this); void Widget:on_doubleSpinBox_1_valueChanged() ui-outout_plus-setText(QString:number(ui-doubleSpinBox_1-value() + ui-doubleSpinBo
6、x_2-value(); void Widget:on_doubleSpinBox_2_valueChanged() ui-outout_plus-setText(QString:number(ui-doubleSpinBox_1-value() + ui-doubleSpinBox_2-value(); void Widget:on_doubleSpinBox_3_valueChanged() ui-outout_minus-setText(QString:number(ui-doubleSpinBox_3-value() - ui-doubleSpinBox_4-value(); void
7、 Widget:on_doubleSpinBox_4_valueChanged() ui-outout_minus-setText(QString:number(ui-doubleSpinBox_3-value() - ui-doubleSpinBox_4-value(); void Widget:on_doubleSpinBox_5_valueChanged() ui-outout_multi-setText(QString:number(ui-doubleSpinBox_5-value() * ui-doubleSpinBox_6-value(); void Widget:on_doubl
8、eSpinBox_6_valueChanged() ui-outout_multi-setText(QString:number(ui-doubleSpinBox_5-value() * ui-doubleSpinBox_6-value(); void Widget:on_doubleSpinBox_7_valueChanged() ui-outout_div-setText(QString:number(ui-doubleSpinBox_7-value() / ui-doubleSpinBox_8-value(); void Widget:on_doubleSpinBox_8_valueCh
9、anged() ui-outout_div-setText(QString:number(ui-doubleSpinBox_7-value() / ui-doubleSpinBox_8-value(); Widget:Widget() delete ui; 实验项目名称带界面计算器的设计实验日期201543一、实验内容描述(问题及要求的描述)1.掌握带界面计算器的设计方法 2.实验要求完成带界面计算器的设计,要自带数字和功能按钮,能实现更多以及更灵活的设计功能。效果图如下:二、实验步骤设计(包括实验方案设计、实验步骤等)采用Qt Designer设计界面实验步骤:1. 编辑窗口控件。2编辑对话
10、框的控件属性、布局和Tab顺序。3编辑每个Button控件的槽函数,用于实现每个Button控件在计算器中的具体功能。4连接每个Button控件的点击信号和对应的槽函数。窗体界面设计如下图:三、实验结果分析及代码(包括结果描述、综合分析)实验结果:1.界面显示:2.当输入任何需要计算的式子后,按下等号,立即显示出结果。3.点击delete删除掉最近输入的一个数字或符号。4.点击clean,所有值清零。四、实验代码(1)使得程序中能使用Qt脚本(在原有代码的基础上添加,划线标记部分为新添加的代码):QT += core gui QT += script TARGET = lesson_test_
11、calculator_finalTEMPLATE = app SOURCES += main.cpp widget.cpp HEADERS += widget.h FORMS += widget.ui(2)返回项目树视图,在头文件widget.h的Widget类添加共有槽函数和全局变量,以及包含头文件QtScript,以使用Qt Script API(在原有代码的基础上添加,划线标记部分为新添加的代码)。#ifndef WIDGET_H #define WIDGET_H #include #include namespace Ui class Widget; class Widget : pu
12、blic QWidget Q_OBJECTpublic:QString sum;/全局变量。 explicit Widget(QWidget *parent = 0); Widget(); public slots:void clickNum1(); /按钮1的槽函数。void clickNum2(); /按钮2的槽函数。void clickNum3(); /按钮3的槽函数。void clickNum4(); /按钮4的槽函数。void clickNum5(); /按钮5的槽函数。void clickNum6(); /按钮6的槽函数。void clickNum7(); /按钮7的槽函数。voi
13、d clickNum8(); /按钮8的槽函数。void clickNum9(); /按钮9的槽函数。void clickNum0(); /按钮0的槽函数。void clickPoint(); /按钮.的槽函数。void clickLbracket(); /按钮(的槽函数。void clickRbracket(); /按钮)的槽函数。void clickClean(); /按钮clean的槽函数。void clickDelete(); /按钮delete的槽函数。void clickPlus(); /按钮+的槽函数。void clickMinus(); /按钮-的槽函数。void clickM
14、ulti(); /按钮*的槽函数。void clickDiv(); /按钮/的槽函数。void clickEqul(); /按钮=的槽函数。private: Ui:Widget *ui; ; #endif / WIDGET_H(3)在源文件widget.cpp中添加新代码(划线标记)。#include widget.h#include ui_widget.h Widget:Widget(QWidget *parent) : QWidget(parent), ui(new Ui:Widget) ui-setupUi(this);sum=; connect(ui-pushButton_1,SIGN
15、AL(clicked(),this,SLOT(clickNum1(); connect(ui-pushButton_2,SIGNAL(clicked(),this,SLOT(clickNum2(); connect(ui-pushButton_3,SIGNAL(clicked(),this,SLOT(clickNum3(); connect(ui-pushButton_4,SIGNAL(clicked(),this,SLOT(clickNum4(); connect(ui-pushButton_5,SIGNAL(clicked(),this,SLOT(clickNum5(); connect(
16、ui-pushButton_6,SIGNAL(clicked(),this,SLOT(clickNum6(); connect(ui-pushButton_7,SIGNAL(clicked(),this,SLOT(clickNum7(); connect(ui-pushButton_8,SIGNAL(clicked(),this,SLOT(clickNum8(); connect(ui-pushButton_9,SIGNAL(clicked(),this,SLOT(clickNum9(); connect(ui-pushButton_0,SIGNAL(clicked(),this,SLOT(c
17、lickNum0(); connect(ui-pushButton_point,SIGNAL(clicked(),this,SLOT(clickPoint();connect(ui-pushButton_lbracket,SIGNAL(clicked(),this,SLOT(clickLbracket(); connect(ui-pushButton_rbracket,SIGNAL(clicked(),this,SLOT(clickRbracket(); connect(ui-pushButton_clean,SIGNAL(clicked(),this,SLOT(clickClean(); c
18、onnect(ui-pushButton_delete,SIGNAL(clicked(),this,SLOT(clickDelete(); connect(ui-pushButton_plus,SIGNAL(clicked(),this,SLOT(clickPlus(); connect(ui-pushButton_minus,SIGNAL(clicked(),this,SLOT(clickMinus(); connect(ui-pushButton_multi,SIGNAL(clicked(),this,SLOT(clickMulti(); connect(ui-pushButton_div
19、,SIGNAL(clicked(),this,SLOT(clickDiv(); connect(ui-pushButton_equl,SIGNAL(clicked(),this,SLOT(clickEqul();void Widget:clickNum1() /按钮1的槽函数。 QString num1=1; QString str=ui-lineEdit-text(); str=str+num1; if(ui-lineEdit-text()=0) ui-lineEdit-setText(num1); elseui-lineEdit-setText(str); void Widget:clic
20、kNum1() /按钮1的槽函数。 QString num1=1; QString str=ui-lineEdit-text(); str=str+num1; if(ui-lineEdit-text()=0) ui-lineEdit-setText(num1); elseui-lineEdit-setText(str); void Widget:clickNum3() /按钮3的槽函数。QString num1=3;QString str=ui-lineEdit-text();str=str+num1;if(ui-lineEdit-text()=0)ui-lineEdit-setText(nu
21、m1);elseui-lineEdit-setText(str);void Widget:clickNum4() /按钮4的槽函数。QString num1=4;QString str=ui-lineEdit-text();str=str+num1;if(ui-lineEdit-text()=0)ui-lineEdit-setText(num1);elseui-lineEdit-setText(str);void Widget:clickNum5() /按钮5的槽函数。QString num1=5;QString str=ui-lineEdit-text();str=str+num1;if(u
22、i-lineEdit-text()=0)ui-lineEdit-setText(num1);elseui-lineEdit-setText(str);void Widget:clickNum6() /按钮6的槽函数。QString num1=6;QString str=ui-lineEdit-text();str=str+num1;if(ui-lineEdit-text()=0)ui-lineEdit-setText(num1);elseui-lineEdit-setText(str);void Widget:clickNum7() /按钮7的槽函数。QString num1=7;QStrin
23、g str=ui-lineEdit-text();str=str+num1;if(ui-lineEdit-text()=0)ui-lineEdit-setText(num1);elseui-lineEdit-setText(str);void Widget:clickNum8() /按钮8的槽函数。QString num1=8;QString str=ui-lineEdit-text();str=str+num1;if(ui-lineEdit-text()=0)ui-lineEdit-setText(num1);elseui-lineEdit-setText(str);void Widget:
24、clickNum9() /按钮9的槽函数。QString num1=9;QString str=ui-lineEdit-text();str=str+num1;if(ui-lineEdit-text()=0)ui-lineEdit-setText(num1);elseui-lineEdit-setText(str);void Widget:clickNum0() /按钮0的槽函数。QString num1=0;QString str=ui-lineEdit-text();str=str+num1;if(ui-lineEdit-text()=0)ui-lineEdit-setText(num1)
25、;elseui-lineEdit-setText(str);void Widget:clickPoint() /按钮point的槽函数。QString num1=.;QString num2=0.;QString str=ui-lineEdit-text();str=str+num1;if(ui-lineEdit-text()=0)ui-lineEdit-setText(num2);elseui-lineEdit-setText(str);void Widget:clickLbracket() /按钮lbracket的槽函数。QString num1=(;QString str=ui-line
26、Edit-text();str=str+num1;if(ui-lineEdit-text()=0)ui-lineEdit-setText(num1);elseui-lineEdit-setText(str);void Widget:clickRbracket() /按钮rbracket的槽函数。QString num1=);QString str=ui-lineEdit-text();str=str+num1;if(ui-lineEdit-text()=0)ui-lineEdit-setText(num1);elseui-lineEdit-setText(str);void Widget:cl
27、ickClean() /按钮clean的槽函数。QString num1=0;ui-lineEdit-setText(num1);void Widget:clickDelete() /按钮delete的槽函数。QString a=0;QString str=ui-lineEdit-text();if(str.length()=1)ui-lineEdit-setText(a);else if(str.length()1)str=str.left(str.length()-1); /从左边取长度减去1的字符串。ui-lineEdit-setText(str);void Widget:clickPl
28、us() /按钮+的槽函数。QString num1=+;QString str=ui-lineEdit-text();sum=str+num1;ui-lineEdit-setText(sum);void Widget:clickMinus() /按钮-的槽函数。QString num1=-;QString str=ui-lineEdit-text();sum=str+num1;ui-lineEdit-setText(sum);void Widget:clickMulti() /按钮*的槽函数。QString num1=*;QString str=ui-lineEdit-text();sum=str+num1;ui-lineEdit-setText(sum);void Widget:clickDiv()
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1