当前位置:
文档之家› 嵌入式qt实验报告简单计算器的设计)
嵌入式qt实验报告简单计算器的设计)
与简单计算器的设计步骤基本相同。但是需要在项目文件(后缀为.pro)添加一段代码,使得程序中能使用Qt脚本,在原有代码的基础上添加。在头文件widget.h的Widget类添加共有槽函数和全局变量,以及包含头文件QtScript,以使用Qt Script API。在源文件widget.cpp中添加新代码,之后即可运行调试。
voidWidget::on_doubleSpinBox_7_valueChanged()
{
ui->outout_div->setText(QString::number(ui->doubleSpinBox_7->value()/ui->doubleSpinBox_8->value()));
}
voidWidget::on_doubleSpinBox_8_valueChanged()
voidclickNum5();//按钮5的槽函数。
voidclickNum6();//按钮6的槽函数。
voidclickNum7();//按钮7的槽函数。
voidclickNum8();//按钮8的槽函数。
voidclickNum9();//按钮9的槽函数。
voidclickNum0();//按钮0的槽函数。
{
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()));
explicitWidget(QWidget*parent=0);
~Widget();
publicslots:
voidclickNum1();//按钮1的槽函数。
voidclickNum2();//按钮2的槽函数。
voidclickNum3();//按钮3的槽函数。
voidclickNum4();//按钮4的槽函数。
};
#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);
{
ui->outout_div->setText(QString::number(ui->doubleSpinBox_7->value()/ui->doubleSpinBox_8->value()));
}
Widget::~Widget()
{
deleteui;
}
2、带显示界面的计算器:
代码:
(1)在shiyanB.pro项目文件中
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()));
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()));
{
Q_OBJECT
public:
explicitWidget(QWidget*parent=0);
~Widget();
privateslots:
voidon_doubleSpinBox_1_valueChanged();
voidon_doubleSpinBox_2_valueChanged();
voidon_doubleSpinBox_3_valueChanged();
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中
#ifndefWIDGET_H
#defineWIDGET_H
#include<QtScript>
#include"QWidget"
namespaceUi{
classWidget;
}
classWidget:publicQWidget
{
Q_OBJECT
public:
QStringsum;//全局变量。
voidclickPlus();//按钮+的槽函数。
voidclickMinus();//按钮-的槽函数。
voidclickMulti();//按钮*的槽函数。
voidclickDiv();//按钮/的槽函数。
voidclickEqul();//按钮=的槽函数。
private:
Ui::Widget*ui;
voidon_doubleSpinBox_8_valueChanged();
private:
Ui::Widget*ui;
};
#endif//WIDGET_H
(2)在widget.cpp源文件中
#include"widget.h"
#include"ui_widget.h"