Qt实现计算器功能

本文实例为大家分享了Qt实现计算器功能的具体代码,供大家参考,具体内容如下

该计算器主要通过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的使用方法。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C++结合QT实现带有优先级的计算器功能

    代码 MyCalculator.h #pragma once #include <QtWidgets/QMainWindow> #include <QStack> #include <QString> #include "ui_MyCalculator.h" class MyCalculator : public QMainWindow { Q_OBJECT public: MyCalculator(QWidget *parent = Q_NULLP

  • QT实现简单计算器功能

    本文实例为大家分享了QT实现简单计算器功能的具体代码,供大家参考,具体内容如下 效果图: 新建工程,创建类MainWindow,基类是QMainWindow,声明变量和函数.槽 mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H   #include <QMainWindow> #include <QPushButton> #include <QLineEdit>   class MainWindow : pub

  • PyQt5实现简易计算器

    本文实例为大家分享了PyQt5实现简易计算器的具体代码,供大家参考,具体内容如下 效果图: 界面代码 calc_interface.py # -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'calc_interface.ui' # # Created by: PyQt5 UI code generator 5.8.2 # # WARNING! All changes made in this

  • python3.5 + PyQt5 +Eric6 实现的一个计算器代码

    目前可以实现简单的计算.计算前请重置,设计的时候默认数字是0,学了半天就做出来个这么个结果,bug不少. python3.5 + PyQt5 +Eric6 在windows7 32位系统可以完美运行 计算器,简单学了半天就画个图实现的存在bug,部分按钮还未实现,后续优化. 代码结构如图: jisuan.py import re #匹配整数或小数的乘除法,包括了开头存在减号的情况 mul_div=re.compile("(-?\d+)(\.\d+)?(\*|/)(-?\d+)(\.\d+)?&q

  • Pyqt实现简易计算器功能

    本文实例为大家分享了Pyqt实现简易计算器的具体代码,供大家参考,具体内容如下 环境:pycharm.python3.7 首先用qtDesigner设计出如下界面. 再用pyUIC将.ui文件转化内.py文件.源码如下 # -*- coding: utf-8 -*-   # Form implementation generated from reading ui file 'calculator.ui' # # Created by: PyQt5 UI code generator 5.11.

  • Python PyQt5实现的简易计算器功能示例

    本文实例讲述了Python PyQt5实现的简易计算器功能.分享给大家供大家参考,具体如下: 这里剩下计算函数(self.calculator)未实现,有兴趣的朋友可以实现它 [知识点] 1.利用循环添加按钮部件,及给每个按钮设置信号/槽 2.给按钮设置固定大小:button.setFixedSize(QtCore.QSize(60,30)) 3.取事件的的发送者(此例为各个按钮)的文本: self.sender().text() [效果图] [源代码] import sys from PyQt

  • PyQt5实现简单的计算器

    本文实例为大家分享了PyQt5实现简单计算器的具体代码,供大家参考,具体内容如下 下面我们将介绍使用python的PyQt5图形界面来编写一个简易的计算器,实现"加,减,乘,除,平方,开方"等运算. 代码如下: from PyQt5.QtGui import * from PyQt5.Qt import * from PyQt5.QtCore import * import sys,math,string class Calculator(QWidget): def __init__(

  • Qt实现计算器功能

    本文实例为大家分享了Qt实现计算器功能的具体代码,供大家参考,具体内容如下 该计算器主要通过lineEdit获取和显示数字,通过tableview显示计算过程. 通过tableview显示计算的过程,QLineEdit获取输入的数字,QComboBox实现不同的计算类型. 效果: 代码: main.cpp #pragma execution_character_set("utf-8") #include "mainwindow.h" #include <QAp

  • C#实现的简单整数四则运算计算器功能示例

    本文实例讲述了C#实现的简单整数四则运算计算器功能.分享给大家供大家参考,具体如下: 运行效果图如下: 具体代码如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace 计算器 { public pa

  • Vue.js实现价格计算器功能

    本文实例为大家分享了Vue.js实现价格计算器功能的具体代码,供大家参考,具体内容如下 实现效果: 实现代码及注释: <!DOCTYPE html> <html> <head> <title>价格计算器</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial

  • JS实现的简单四则运算计算器功能示例

    本文实例讲述了JS实现的简单四则运算计算器功能.分享给大家供大家参考,具体如下: 先来看看运行效果: 具体代码如下: <!DOCTYPE html> <html> <meta name="content-type" content="text/html; charset=UTF-8"> <head> <title>www.jb51.net 计算器 Calculator</title> <!

  • PHP实现的简单在线计算器功能示例

    本文实例讲述了PHP实现的简单在线计算器功能.分享给大家供大家参考,具体如下: <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf8"> <title>简单的计算器(www.jb51.net)</title> </head> <body> <?php //如果用户单击了计算按

  • PHP基于堆栈实现的高级计算器功能示例

    本文实例讲述了PHP基于堆栈实现的高级计算器功能.分享给大家供大家参考,具体如下: 当我们得到一个字符串运算式该如何去得出它的运算结果呢? 这时候我们就能使用堆栈的算法很巧妙的解决这个问题. 思路是这样的:(我们利用php函数substr循环去截取这个字符串运算式,依次取出这个字符串的值[我们得从第一个字符开始截取],我们将开始截取位置设为一个循环增长的变量,初始化为[$index=0]),同时还需要创建两个栈,一个专门存放数字[$numStack],一个存放运算符[$operStack],我们

  • Python实现的科学计算器功能示例

    本文实例讲述了Python实现的科学计算器功能.分享给大家供大家参考,具体如下: import wx import re import math # begin wxGlade: extracode # end wxGlade ans=0 ts="" class MyFrame(wx.Frame): def __init__(self, *args, **kwds): # begin wxGlade: MyFrame.__init__ kwds["style"] =

  • C#实现简单的计算器功能完整实例

    本文实例讲述了C#实现简单的计算器功能.分享给大家供大家参考,具体如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Collections; usi

随机推荐