目录
实现功能:加,减,乘,除,取余,小数点,取反(),数字回退,全部清0。
实现功能:加,减,乘,除,取余,小数点,取反(这个最难搞,要兼容前面的),数字回退,全部清0。
一、实现结果(win7的计算器)对比:
win7自带计算器:
我做的:
二、实现思路
1、用QButtonGroup()按钮组让数字按键放入同一个组中,就可以不用写0-9的按钮槽函数,大量节省代码。
2、将加减乘除这些按钮单独定义槽,作用是储存点击的数字和运算符。(误区:这些函数内部并不是实现直接进行运算,而是将运算的数值符号储存。给等号"="槽函数内部计算);
3、定义三个QString类型的变量,第一个是存储大标签的数据,第二个是存储小标签的数据(即右上角顶部那个位置的数据),第三个是标志位,判断是否取反(+-),就在运算减号那里用了一下。
4、需要调用一些QString字符串函数。
三、代码实现
1、首先是将按钮摆放好(双击.ui文件界面)
2、主窗口定义函数
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QButtonGroup"
#include <qDebug>
定义一个按钮组对象
QButtonGroup *bg;
QString num="0"; //存储大标签数据
QString num2="0"; //存储小标签数据
QString num3="0"; //标志位
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
绑定按钮组
bg = new QButtonGroup(this);
bg->addButton(ui->pushButton_1,1); 添加按钮,用id传递
bg->addButton(ui->pushButton_2,2); 数字按键
bg->a