嵌入式qt实验报告简单计算器的设计Word文档格式.docx

上传人:b****6 文档编号:21437911 上传时间:2023-01-30 格式:DOCX 页数:16 大小:17.78KB
下载 相关 举报
嵌入式qt实验报告简单计算器的设计Word文档格式.docx_第1页
第1页 / 共16页
嵌入式qt实验报告简单计算器的设计Word文档格式.docx_第2页
第2页 / 共16页
嵌入式qt实验报告简单计算器的设计Word文档格式.docx_第3页
第3页 / 共16页
嵌入式qt实验报告简单计算器的设计Word文档格式.docx_第4页
第4页 / 共16页
嵌入式qt实验报告简单计算器的设计Word文档格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

嵌入式qt实验报告简单计算器的设计Word文档格式.docx

《嵌入式qt实验报告简单计算器的设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《嵌入式qt实验报告简单计算器的设计Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。

嵌入式qt实验报告简单计算器的设计Word文档格式.docx

4、用模拟器调试运行。

2、带界面的计算器的设计:

与简单计算器的设计步骤基本相同。

但是需要在项目文件(后缀为.pro)添加一段代码,使得程序中能使用Qt脚本,在原有代码的基础上添加。

在头文件widget.h的Widget类添加共有槽函数和全局变量,以及包含头文件QtScript,以使用QtScriptAPI。

在源文件widget.cpp中添加新代码,之后即可运行调试。

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

实验结果如下:

1、简单计算器:

代码:

(1)在widget.h文件中

#ifndefWIDGET_H

#defineWIDGET_H

#include<

QWidget>

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"

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

on_doubleSpinBox_2_valueChanged()

on_doubleSpinBox_3_valueChanged()

outout_minus->

doubleSpinBox_3->

value()-ui->

doubleSpinBox_4->

}

on_doubleSpinBox_4_valueChanged()

on_doubleSpinBox_5_valueChanged()

outout_multi->

doubleSpinBox_5->

value()*ui->

doubleSpinBox_6->

on_doubleSpinBox_6_valueChanged()

voidWidget:

on_doubleSpinBox_7_valueChanged()

outout_div->

doubleSpinBox_7->

value()/ui->

doubleSpinBox_8->

on_doubleSpinBox_8_valueChanged()

~Widget()

deleteui;

2、带显示界面的计算器:

(1)在shiyanB.pro项目文件中

QT+=coregui

QT+=script

greaterThan(QT_MAJOR_VERSION,4):

QT+=widgets

TARGET=shiyanB

TEMPLATE=app

SOURCES+=main.cpp\

widget.cpp

HEADERS+=widget.h

FORMS+=widget.ui

(2)在头文件widget.h中

QtScript>

QWidget"

QStringsum;

//全局变量。

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

//按钮=的槽函数。

(3)在源文件widget.cpp中

sum="

"

;

connect(ui->

pushButton_1,SIGNAL(clicked()),this,SLOT(clickNum1()));

pushButton_2,SIGNAL(clicked()),this,SLOT(clickNum2()));

pushButton_3,SIGNAL(clicked()),this,SLOT(clickNum3()));

pushButton_4,SIGNAL(clicked()),this,SLOT(clickNum4()));

pushButton_5,SIGNAL(clicked()),this,SLOT(clickNum5()));

pushButton_6,SIGNAL(clicked()),this,SLOT(clickNum6()));

pushButton_7,SIGNAL(clicked()),this,SLOT(clickNum7()));

pushButton_8,SIGNAL(clicked()),this,SLOT(clickNum8()));

pushButton_9,SIGNAL(clicked()),this,SLOT(clickNum9()));

pushButton_0,SIGNAL(clicked()),this,SLOT(clickNum0()));

pushButton_point,SIGNAL(clicked()),this,SLOT(clickPoint()));

pushButton_lbracket,SIGNAL(clicked()),this,SLOT(clickLbracket()));

pushButton_rbracket,SIGNAL(clicked()),this,SLOT(clickRbracket()));

pushButton_clean,SIGNAL(clicked()),this,SLOT(clickClean()));

pushButton_delete,SIGNAL(clicked()),this,SLOT(clickDelete()));

pushButton_plus,SIGNAL(clicked()),this,SLOT(clickPlus()));

pushButton_minus,SIGNAL(clicked()),this,SLOT(clickMinus()));

pushButton_multi,SIGNAL(clicked()),this,SLOT(clickMulti()));

pushButton_div,SIGNAL(clicked()),this,SLOT(clickDiv()));

pushButton_equl,SIGNAL(clicked()),this,SLOT(clickEqul()));

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

QStringnum1="

1"

QStringstr=ui->

lineEdit->

text();

str=str+num1;

if(ui->

text()=="

0"

setText(num1);

else

setText(str);

clickNum2()//按钮2的槽函数。

2"

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

3"

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

4"

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

5"

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

6"

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

7"

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

8"

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

9"

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

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

."

QStringnum2="

0."

setText(num2);

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

("

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

)"

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

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

QStringa="

if(str.length()==1)

setText(a);

elseif(str.length()>

1)

str=str.left(str.length()-1);

//从左边取长度减去1的字符串。

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

+"

sum=str+num1;

setText(sum);

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

-"

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

*"

clickDiv()//按钮/的槽函数。

/"

clickEqul()//按钮=的槽函数。

QScriptEngineengine;

//QScriptEngine类为程序提供一个嵌入式脚本环境,每一个引擎都是一个轻量级自包含的虚拟机。

QScriptValueresult=engine.evaluate(str);

//调用脚本引擎的evaluate()函数可以执行脚本,此处即可算出之前输入的字符串算式的结果。

setText(result.toString());

//调用QScriptValue类的toString()函数将QScriptValue类的执行结果转换成string型。

实验分析:

这两个小实验可以实现简单计算器的四则运算

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

当前位置:首页 > 初中教育 > 其它课程

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

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