利用qt creator进行简单功能计算机设计.docx

上传人:b****9 文档编号:26233094 上传时间:2023-06-17 格式:DOCX 页数:21 大小:355.13KB
下载 相关 举报
利用qt creator进行简单功能计算机设计.docx_第1页
第1页 / 共21页
利用qt creator进行简单功能计算机设计.docx_第2页
第2页 / 共21页
利用qt creator进行简单功能计算机设计.docx_第3页
第3页 / 共21页
利用qt creator进行简单功能计算机设计.docx_第4页
第4页 / 共21页
利用qt creator进行简单功能计算机设计.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

利用qt creator进行简单功能计算机设计.docx

《利用qt creator进行简单功能计算机设计.docx》由会员分享,可在线阅读,更多相关《利用qt creator进行简单功能计算机设计.docx(21页珍藏版)》请在冰豆网上搜索。

利用qt creator进行简单功能计算机设计.docx

利用qtcreator进行简单功能计算机设计

电子科技大学

学生实验报告书

 

课程名称实用嵌入式应用系统设计与实现

任课老师

学生姓名

学生学号

学生学院

 

2014—2015学年第2学期

 

实验项目名称

简单功能计算器的设计

实验日期

2015.3.27

一、实验内容描述(问题及要求的描述)

1.掌握简单功能计算器的设计方法

2.实验要求完成简单功能计算器的设计,要能够完成简单的四则运算,实时更新运算结果。

效果图如下:

二、实验步骤设计(包括实验方案设计、实验步骤等)

采用QtDesigner设计界面

实验步骤:

1.创建窗体。

创建一个QtGui应用的项目lesson_test_dialog_Designer,基类选择Qwidget。

双击界面文件widget.ui进入QtDesigner进行界面设计。

2.编辑对话框的控件属性、布局和Tab顺序。

3.编辑每个spinBox控件的槽函数,用于实现当spinBox的数值发生变化时,实时更新运算结果。

4.连接每个spinBox的数值改变信号和对应的槽函数。

窗体界面设计如下图:

三、实验结果分析(包括结果描述、综合分析)

实验结果:

1.界面显示:

2.当在两个输入上按下上下箭头输入好数字后,计算器自动进行四则运算,输出结果。

四、实验代码:

(1)返回项目树视图,在头文件widget.h的Widget类添加共有槽函数(在原有代码的基础上添加,划线标记部分为新添加的代码)。

添加的代码实现了信号和槽的自动关联

#ifndefWIDGET_H

#defineWIDGET_H

#include

namespaceUi

{

classWidget;

}

classWidget:

publicQwidget

{

Q_OBJECT

public:

explicitWidget(QWidget*parent=0);

~Widget();

privateslots:

voidon_doubleSpinBox_1_valueChanged();

voidon_doubleSpinBox_2_valueChanged();

voidon_doubleSpinBox_3_valueChanged();

voidon_doubleSpinBox_4_valueChanged();

voidon_doubleSpinBox_5_valueChanged();

voidon_doubleSpinBox_6_valueChanged();

voidon_doubleSpinBox_7_valueChanged();

voidon_doubleSpinBox_8_valueChanged();

private:

Ui:

:

Widget*ui;

};

#endif//WIDGET_H

(2)在源文件widget.cpp中添加新代码(划线标记),添加的代码实现了每个框进行加减乘除四则运算的功能。

#include"widget.h"

#include"ui_widget.h"

Widget:

:

Widget(QWidget*parent):

QWidget(parent),ui(newUi:

:

Widget)

{

ui->setupUi(this);

}

voidWidget:

:

on_doubleSpinBox_1_valueChanged()

{

ui->outout_plus->setText(QString:

:

number(ui->doubleSpinBox_1->value()+ui->doubleSpinBox_2->value()));

}

voidWidget:

:

on_doubleSpinBox_2_valueChanged()

{

ui->outout_plus->setText(QString:

:

number(ui->doubleSpinBox_1->value()+ui->doubleSpinBox_2->value()));

}

voidWidget:

:

on_doubleSpinBox_3_valueChanged()

{

ui->outout_minus->setText(QString:

:

number(ui->doubleSpinBox_3->value()-ui->doubleSpinBox_4->value()));

}

voidWidget:

:

on_doubleSpinBox_4_valueChanged()

{

ui->outout_minus->setText(QString:

:

number(ui->doubleSpinBox_3->value()-ui->doubleSpinBox_4->value()));

}

voidWidget:

:

on_doubleSpinBox_5_valueChanged()

{

ui->outout_multi->setText(QString:

:

number(ui->doubleSpinBox_5->value()*ui->doubleSpinBox_6->value()));

}

voidWidget:

:

on_doubleSpinBox_6_valueChanged()

{

ui->outout_multi->setText(QString:

:

number(ui->doubleSpinBox_5->value()*ui->doubleSpinBox_6->value()));

}

voidWidget:

:

on_doubleSpinBox_7_valueChanged()

{

ui->outout_div->setText(QString:

:

number(ui->doubleSpinBox_7->value()/ui->doubleSpinBox_8->value()));

}

voidWidget:

:

on_doubleSpinBox_8_valueChanged()

{

ui->outout_div->setText(QString:

:

number(ui->doubleSpinBox_7->value()/ui->doubleSpinBox_8->value()));

}

Widget:

:

~Widget()

{

deleteui;

}

 

实验项目名称

带界面计算器的设计

实验日期

2015.4.3

一、实验内容描述(问题及要求的描述)

1.掌握带界面计算器的设计方法

2.实验要求完成带界面计算器的设计,要自带数字和功能按钮,能实现更多以及更灵活的设计功能。

效果图如下:

二、实验步骤设计(包括实验方案设计、实验步骤等)

采用QtDesigner设计界面

实验步骤:

1.编辑窗口控件。

2.编辑对话框的控件属性、布局和Tab顺序。

3.编辑每个Button控件的槽函数,用于实现每个Button控件在计算器中的具体功能。

4.连接每个Button控件的点击信号和对应的槽函数。

窗体界面设计如下图:

三、实验结果分析及代码(包括结果描述、综合分析)

实验结果:

1.界面显示:

2.当输入任何需要计算的式子后,按下等号,立即显示出结果。

3.点击delete删除掉最近输入的一个数字或符号。

4.点击clean,所有值清零。

 

四、实验代码

(1)使得程序中能使用Qt脚本(在原有代码的基础上添加,划线标记部分为新添加的代码):

QT+=coregui

QT+=script

TARGET=lesson_test_calculator_final

TEMPLATE=app

SOURCES+=main.cpp\

widget.cpp

HEADERS+=widget.h

FORMS+=widget.ui

(2)返回项目树视图,在头文件widget.h的Widget类添加共有槽函数和全局变量,以及包含头文件QtScript,以使用QtScriptAPI(在原有代码的基础上添加,划线标记部分为新添加的代码)。

#ifndefWIDGET_H

#defineWIDGET_H

#include

#include

namespaceUi

{

classWidget;

}

classWidget:

publicQWidget

{

Q_OBJECT

public:

QStringsum;//全局变量。

explicitWidget(QWidget*parent=0);

~Widget();

publicslots:

voidclickNum1();//按钮1的槽函数。

voidclickNum2();//按钮2的槽函数。

voidclickNum3();//按钮3的槽函数。

voidclickNum4();//按钮4的槽函数。

voidclickNum5();//按钮5的槽函数。

voidclickNum6();//按钮6的槽函数。

voidclickNum7();//按钮7的槽函数。

voidclickNum8();//按钮8的槽函数。

voidclickNum9();//按钮9的槽函数。

voidclickNum0();//按钮0的槽函数。

voidclickPoint();//按钮.的槽函数。

voidclickLbracket();//按钮(的槽函数。

voidclickRbracket();//按钮)的槽函数。

voidclickClean();//按钮clean的槽函数。

voidclickDelete();//按钮delete的槽函数。

voidclickPlus();//按钮+的槽函数。

voidclickMinus();//按钮-的槽函数。

voidclickMulti();//按钮*的槽函数。

voidclickDiv();//按钮/的槽函数。

voidclickEqul();//按钮=的槽函数。

private:

Ui:

:

Widget*ui;

};

#endif//WIDGET_H

(3)在源文件widget.cpp中添加新代码(划线标记)。

#include"widget.h"

#include"ui_widget.h"

Widget:

:

Widget(QWidget*parent):

QWidget(parent),

ui(newUi:

:

Widget)

{

ui->setupUi(this);

sum="";

connect(ui->pushButton_1,SIGNAL(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(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(clickNum0()));

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()));

connect(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,SIGNAL(clicked()),this,SLOT(clickDiv()));

connect(ui->pushButton_equl,SIGNAL(clicked()),this,SLOT(clickEqul()));

}

voidWidget:

:

clickNum1()//按钮1的槽函数。

{

QStringnum1="1";

QStringstr=ui->lineEdit->text();

str=str+num1;

if(ui->lineEdit->text()=="0")

{

ui->lineEdit->setText(num1);

}

else

{

ui->lineEdit->setText(str);

}

}

voidWidget:

:

clickNum1()//按钮1的槽函数。

{

QStringnum1="1";

QStringstr=ui->lineEdit->text();

str=str+num1;

if(ui->lineEdit->text()=="0")

{

ui->lineEdit->setText(num1);

}

else

{

ui->lineEdit->setText(str);

}

}

voidWidget:

:

clickNum3()//按钮3的槽函数。

{

QStringnum1="3";

QStringstr=ui->lineEdit->text();

str=str+num1;

if(ui->lineEdit->text()=="0")

{

ui->lineEdit->setText(num1);

}

else

{

ui->lineEdit->setText(str);

}

}

voidWidget:

:

clickNum4()//按钮4的槽函数。

{

QStringnum1="4";

QStringstr=ui->lineEdit->text();

str=str+num1;

if(ui->lineEdit->text()=="0")

{

ui->lineEdit->setText(num1);

}

else

{

ui->lineEdit->setText(str);

}

}

voidWidget:

:

clickNum5()//按钮5的槽函数。

{

QStringnum1="5";

QStringstr=ui->lineEdit->text();

str=str+num1;

if(ui->lineEdit->text()=="0")

{

ui->lineEdit->setText(num1);

}

else

{

ui->lineEdit->setText(str);

}

}

voidWidget:

:

clickNum6()//按钮6的槽函数。

{

QStringnum1="6";

QStringstr=ui->lineEdit->text();

str=str+num1;

if(ui->lineEdit->text()=="0")

{

ui->lineEdit->setText(num1);

}

else

{

ui->lineEdit->setText(str);

}

}

voidWidget:

:

clickNum7()//按钮7的槽函数。

{

QStringnum1="7";

QStringstr=ui->lineEdit->text();

str=str+num1;

if(ui->lineEdit->text()=="0")

{

ui->lineEdit->setText(num1);

}

else

{

ui->lineEdit->setText(str);

}

}

voidWidget:

:

clickNum8()//按钮8的槽函数。

{

QStringnum1="8";

QStringstr=ui->lineEdit->text();

str=str+num1;

if(ui->lineEdit->text()=="0")

{

ui->lineEdit->setText(num1);

}

else

{

ui->lineEdit->setText(str);

}

}

voidWidget:

:

clickNum9()//按钮9的槽函数。

{

QStringnum1="9";

QStringstr=ui->lineEdit->text();

str=str+num1;

if(ui->lineEdit->text()=="0")

{

ui->lineEdit->setText(num1);

}

else

{

ui->lineEdit->setText(str);

}

}

voidWidget:

:

clickNum0()//按钮0的槽函数。

{

QStringnum1="0";

QStringstr=ui->lineEdit->text();

str=str+num1;

if(ui->lineEdit->text()=="0")

{

ui->lineEdit->setText(num1);

}

else

{

ui->lineEdit->setText(str);

}

}

voidWidget:

:

clickPoint()//按钮point的槽函数。

{

QStringnum1=".";

QStringnum2="0.";

QStringstr=ui->lineEdit->text();

str=str+num1;

if(ui->lineEdit->text()=="0")

{

ui->lineEdit->setText(num2);

}

else

{

ui->lineEdit->setText(str);

}

}

voidWidget:

:

clickLbracket()//按钮lbracket的槽函数。

{

QStringnum1="(";

QStringstr=ui->lineEdit->text();

str=str+num1;

if(ui->lineEdit->text()=="0")

{

ui->lineEdit->setText(num1);

}

else

{

ui->lineEdit->setText(str);

}

}

voidWidget:

:

clickRbracket()//按钮rbracket的槽函数。

{

QStringnum1=")";

QStringstr=ui->lineEdit->text();

str=str+num1;

if(ui->lineEdit->text()=="0")

{

ui->lineEdit->setText(num1);

}

else

{

ui->lineEdit->setText(str);

}

}

voidWidget:

:

clickClean()//按钮clean的槽函数。

{

QStringnum1="0";

ui->lineEdit->setText(num1);

}

voidWidget:

:

clickDelete()//按钮delete的槽函数。

{

QStringa="0";

QStringstr=ui->lineEdit->text();

if(str.length()==1)

{

ui->lineEdit->setText(a);

}

elseif(str.length()>1)

{

str=str.left(str.length()-1);//从左边取长度减去1的字符串。

ui->lineEdit->setText(str);

}

}

voidWidget:

:

clickPlus()//按钮+的槽函数。

{

QStringnum1="+";

QStringstr=ui->lineEdit->text();

sum=str+num1;

ui->lineEdit->setText(sum);

}

voidWidget:

:

clickMinus()//按钮-的槽函数。

{

QStringnum1="-";

QStringstr=ui->lineEdit->text();

sum=str+num1;

ui->lineEdit->setText(sum);

}

voidWidget:

:

clickMulti()//按钮*的槽函数。

{

QStringnum1="*";

QStringstr=ui->lineEdit->text();

sum=str+num1;

ui->lineEdit->setText(sum);

}

voidWidget:

:

clickDiv()

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1