Qt实现 计算器

Qt实现简易计算器 用Qt实现计算器,首先得在ui界面设计一个计算器,当然也可以代码写,我觉得没必要就直接拖啦,而且槽函数也可以直接转到,非常方便。 阅读详情

该计算器主要通过lineEdit获取和显示数字,通过tableview显示计算过程。

通过tableview显示计算的过程,QLineEdit获取输入的数字,QComboBox实现不同的计算类型。

效果:

代码:

main.cpp

#pragma execution_character_set("utf-8")
#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.setWindowTitle("计算器");
    w.show();

    return a.exec();
}

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QStandardItemModel>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    int setCount();

private slots:
    void on_btn_cal_clicked();

private:
    Ui::MainWindow *ui;
    QStandardItemModel *model;
};

#endif // MAINWINDOW_H

mainwindow.cpp

#pragma execution_character_set("utf-8")
#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QDebug>
#include <QMessageBox>
#include <QStandardItem>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    //初始化model
    model=new QStandardItemModel();

    //设置列标题
    model->setHorizontalHeaderItem(0,new QStandardItem("数字A"));

    model->setHorizontalHeaderItem(1,new QStandardItem("符号"));

    model->setHorizontalHeaderItem(2,new QStandardItem("数字B"));

    model->setHorizontalHeaderItem(3,new QStandardItem("结果"));

    //将模型与视图绑定
    ui->tableView->setModel(model);

    //设置表格单元不能编辑
    ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);

    //设置列表宽度
    for(int i=0;i<4;++i)
    {
        ui->tableView->setColumnWidth(i,50);
    }

}

MainWindow::~MainWindow()
{
    delete ui;
}

int MainWindow::setCount()
{
    int ret=0;

    //获取lineEdit上的内容
    QString num1=ui->num1->text();
    if(num1.isEmpty())
    {
        return -1;
    }

    QString num2=ui->num2->text();
    if(num2.isEmpty())
    {
        return -1;
    }

    QString symbol=ui->comboBox->currentText();

    if(symbol == "+")
    {
        ret=num1.toInt()+num2.toInt();
    }
    else if(symbol == "-")
    {
        ret=num1.toInt()-num2.toInt();
    }
    else if(symbol == "*")
    {
        ret=num1.toInt()*num2.toInt();
    }
    else if(symbol == "/")
    {
        if(num2.toInt()==0)
            return -2;
        ret=num1.toInt()/num2.toInt();
    }

    return ret;
}


//计算
void MainWindow::on_btn_cal_clicked()
{
    int result=setCount();
    if(result==-1)
    {
      QMessageBox::warning(this,"提示","存在输入项为空!","确定");
      ui->result->clear();
      return;
    }
    else if(result==-2)
    {
        QMessageBox::warning(this,"提示","除数为0!","确定");
        ui->result->clear();
        return;
    }

    //绑定值到视图中
    model->setItem(0,0,new QStandardItem(ui->num1->text()));
    model->setItem(0,1,new QStandardItem(ui->comboBox->currentText()));
    model->setItem(0,2,new QStandardItem(ui->num2->text()));
    model->setItem(0,3,new QStandardItem(QString::number(result)));

    //设置result需要显示的值
    ui->result->setText(QString::number(result));

}

以上主要是强化tableview的使用,体会model的使用方法。

Qt实现简单计算器 Qt5.8实现计算器 阅读详情

相关推荐

【Qt】实现一个计算器

Qt实现的简单计算器 Qt实现简易计算器

清风微醺的博客 1万+

QT制作简易计算器

case Num://判断运算符是否存在(判断次方位置)if(!Num1+="^";Num1+=_btn;elseif(!Num2+="^";Num2+=_btn;break;case Op://连续运算if(!if(num2!=0.0)elseui->lineEdit->setText("输入错误!");if(num2!elseui->lineEdit->setText("输入错误!");

Ricardo的博客 1446

QT实现简单计算器

一、模块图 二、核心算法 —– 中缀表达式转化为后缀表达式 1、将中缀表达式转换为后缀表达式的算法思想: 1)计算机实现转换: ·开始扫描; ·数字时,加入后缀表达式; ·运算符: a. 若为 ‘(‘,入栈; b. 若为 ‘)’,则依次把栈中的的运算符加入后缀表达式中,直到出现’(‘,从栈中删除’(’ ; c. 若为 除括号外的其他运算符, 当其优先级高于除’(‘以外的栈

snow_5288的博客 1万+

Qt 制作一个简易的计算器

Qt 简易计算器

zy1872071381的博客 8865

【Qt5】实现简易计算器

实现2个数进行四则运算的计算器。

络小绎 1万+

qt实现一个简易的计算器

下载安装教程:https://blog.youkuaiyun.com/cfan927/article/details/98115783?强拖过来后我们对Push Button进行编辑,QT的优点在于图形界面的设计很简单,将各种控件拖拽后会在上述ui文件中自动生成代码,拖拽到窗口的控件可以手动调整它的大小和位置,并且它的位置会在一个整数的位置自动对齐。进入设计页面后,左侧会有各种控件,可以将他们拖拽到你想编辑的窗口中,我们要做的是计算器,所以只用到很少几个控件,这里我的按键我用到的是。件的功能可以通过教学视频慢慢了解。

BIUZJ的博客 2241

使用Qt制作一个简易计算器(纯代码实现)

基于Qt,使用C++语言开发的一个简易计算器,包含了加减乘除四则运算。(仅适合初级学者学习)(纯代码实现)

powerhsy的博客 2276

qt实现计算器

简单学了一下qt,做了个最基本的计算器。

chenxihanhui的博客 2175

Qt--实现简单加法计算器

#ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include<QPushButton> #include<QHBoxLayout> #include<QVBoxLayout> #include<QGridLayout> #include<QLineEdit> #...

qq_38936579的博客 3737

QT实现一个简单计算器

QT实现一个简单计算器 学生一枚,水平有限,如有问题,还望指正 第一步 通过QT设计师绘制出界面图形,界面大致如下: 第二步 将保存的.ui文件转换为头文件,以便于自己创建的对象对其继承和使用 uic CalculatorDialog.ui -o ui_CalculatorDialog.h 第三步 创建自己的头文件CalculatorDialog.h和CalculatorDialog.cpp文件,以及main.cpp,具体实现代码如下,注释清晰 第四步 CalculatorDialog.h #ifndef

qq_41821743的博客 4201

QT5 实现简易科学计算器

QT5 实现简易科学计算器界面展示功能叙述源码主界面源码mainwindow.hmainwindow.cpp基础计算界面floatcanculator.hfloatcanculator.cppBeh.hppExpression.hppStack.hppFunction.hFunction.cpplegalexpression.hlegalexpression.cpp矩阵计算界面matrixfunc...

qq_43518938的博客 4063

Qt5 计算器的实现

零零散散学了段时间的Qt5,今天动手写了个计算器,太开心了。在这里,认真总结一下,其实在Qt里写带gui的程序,其实核心算法,直接把C/C++代码添加进去就可以了,所以还是要打牢C/C++的算法基础,真的是万变不离其宗啊。 工程文件下载链接在博客后面 首先看我的程序结构:  我们都知道,计算器稍微麻烦点的就是中缀表达式转后缀表达式,以及后缀表达式的计算,我这里func.c就是这篇博客中缀...

salmonwilliam的博客 5076

基于Qt实现的简易计算器(C++)

本人刚学Qt时实现了一个计算器的简单应用程序,刚好最近的程序设计训练有计算器这道题目,于是便完善了一下,拿出来分享给大家, 说不定有和我选一样的同学看到。 这是运行后的应用程序,由于我的电脑是Win7系统,所以我就参考Win7自带的应用计算器设计开发。 本程序参考《设计模式》将用户界面与业务逻辑分离开,并通过业务接口关联。 设计原则:功能模块之间需要进行解耦。 核心思想:强内聚,弱耦合...

weixin_41477765的博客 5885

Qt实现的计算器

使用Qt实现一个计算器

YG爱木木 9631

QT实现一个简单的计算器

首先先看下这个程序的运行的demo,效果图如下: 在这个小程序中,有些值得注意的东西,就是包含如下: 1.文本编辑框 2.一系列的控件 在上面的控件类Button都是继承自QToolButton类,并重写了其中的sizeHint()函数,让宽度拉升 具体代码如下: #ifndef BUTTON_H #define BUTTON_H #include

南的专栏 1万+

QT——2.2简易四则运算计算器:练习ComboBox、MessageBox的使用

【目标】:做一个四则运算小程序,练习ComboBox、MessageBox的使用 【方法】: 1、ComboBox,主要针对Item操作,右键编辑项目,在其中加入要显示的内容,这里我们加入四个项目,对应的Index为0-3; 2、在计算按钮,右键转到槽,在槽函数中添加运算代码,即根据ComboBox不同的Index进行不同运算: void MainWindow::on_calBu...

数字世界 万物互联 2217

qt5实现计算器

(1)取出按钮中的字符 QString line = ui-&amp;amp;amp;amp;amp;gt;pushButton1-&amp;amp;amp;amp;amp;gt;text() //取出按钮pushButton1中的字符存放到line中 (2)设置输入框中显示的内容 ui-&amp;amp;amp;amp;amp;gt;lineEdit-&amp;amp;amp;amp;amp;gt;setText(line); //设置输入框lineEdit中显示

陌上花开缓缓归以的博客 1783

变焦跟踪理论基础(如何在变焦过程中保持清晰)

如何在整个变焦过程中一直保持图像的清晰度或焦点是变焦跟踪的主要挑战。 当用户在缩放跟踪的情况下改变缩放时,设备保持对焦。 然而,在没有变焦跟踪的情况下,图像变得失焦,图像在变焦跟踪后由于自动对焦(AF)算法才最终对焦。...................................................

ChenYX的博客 20万+
上一篇: 二叉树的构造和递归算法
下一篇: c++重载==运算符(结构体)
Qt上位机开发
Qt上位机开发 领域专家: C/C++技术领域 领域专家: C/C++技术领域
博客等级 码龄9年 9664粉丝 178原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值