欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Qt實現(xiàn)計算器功能

 更新時間:2022年08月22日 10:27:23   作者:梁光林  
這篇文章主要為大家詳細介紹了Qt實現(xiàn)計算器功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Qt實現(xiàn)計算器功能的具體代碼,供大家參考,具體內(nèi)容如下

該計算器主要通過lineEdit獲取和顯示數(shù)字,通過tableview顯示計算過程。

通過tableview顯示計算的過程,QLineEdit獲取輸入的數(shù)字,QComboBox實現(xiàn)不同的計算類型。

效果:

代碼:

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();
?
? ? //設(shè)置列標(biāo)題
? ? model->setHorizontalHeaderItem(0,new QStandardItem("數(shù)字A"));
?
? ? model->setHorizontalHeaderItem(1,new QStandardItem("符號"));
?
? ? model->setHorizontalHeaderItem(2,new QStandardItem("數(shù)字B"));
?
? ? model->setHorizontalHeaderItem(3,new QStandardItem("結(jié)果"));
?
? ? //將模型與視圖綁定
? ? ui->tableView->setModel(model);
?
? ? //設(shè)置表格單元不能編輯
? ? ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
?
? ? //設(shè)置列表寬度
? ? for(int i=0;i<4;++i)
? ? {
? ? ? ? ui->tableView->setColumnWidth(i,50);
? ? }
?
}
?
MainWindow::~MainWindow()
{
? ? delete ui;
}
?
int MainWindow::setCount()
{
? ? int ret=0;
?
? ? //獲取lineEdit上的內(nèi)容
? ? 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,"提示","除數(shù)為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)));
?
? ? //設(shè)置result需要顯示的值
? ? ui->result->setText(QString::number(result));
?
}

以上主要是強化tableview的使用,體會model的使用方法。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++實現(xiàn)俄羅斯方塊(linux版本)

    C++實現(xiàn)俄羅斯方塊(linux版本)

    這篇文章主要為大家詳細介紹了linux版本C++實現(xiàn)俄羅斯方塊,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • C++實現(xiàn)AVL樹的完整代碼

    C++實現(xiàn)AVL樹的完整代碼

    AVL樹是高度平衡的而二叉樹。它的特點是:AVL樹中任何節(jié)點的兩個子樹的高度最大差別為1。 今天通過本文給大家分享C++實現(xiàn)AVL樹的完整代碼,感興趣的朋友一起看看吧
    2021-06-06
  • C++另辟蹊徑計算1到n的和

    C++另辟蹊徑計算1到n的和

    從1加到100,高斯的故事,我們學(xué)過。今天,我們寫一個程序來試試。首先,用笨方法。一個數(shù)一個數(shù)的加,我們一般人就是這樣干的嗎。在計算機程序里面,怎么辦呢?1我們把求和的功能寫成一個可以針對不同的N運用的,C++里面叫函數(shù)
    2023-02-02
  • c++中.dll與.lib文件的生成與使用的詳解

    c++中.dll與.lib文件的生成與使用的詳解

    本篇文章介紹了,在c++中.dll與.lib文件的生成與使用的詳細介紹,需要的朋友參考下
    2013-05-05
  • C++編程異常處理中try和throw以及catch語句的用法

    C++編程異常處理中try和throw以及catch語句的用法

    這篇文章主要介紹了C++編程異常處理中try和throw以及catch語句的用法,包括對Catch塊的計算方式的介紹,需要的朋友可以參考下
    2016-01-01
  • c++ vector 常用函數(shù)示例解析

    c++ vector 常用函數(shù)示例解析

    這篇文章主要介紹了c++ vector 常用函數(shù)示例解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 關(guān)于C/C++中的side effect(負效應(yīng))和sequence point(序列點)

    關(guān)于C/C++中的side effect(負效應(yīng))和sequence point(序列點)

    不知你在寫code時是否遇到這樣的問題?int i = 3; int x = (++i) + (++i) + (++i); 問x值為多少?進行各種理論分析,并在編譯器上實踐,然而可能發(fā)現(xiàn)最終的結(jié)果是不正確的,也是不穩(wěn)定的,不同的編譯器可能會產(chǎn)生不同的結(jié)果。這讓人很頭疼
    2013-10-10
  • C語言判斷字符串是否回文三種方法實例

    C語言判斷字符串是否回文三種方法實例

    回文就是字符串中心對稱,從左向右讀和從右向左讀的內(nèi)容是一樣的,下面這篇文章主要給大家介紹了關(guān)于C語言判斷字符串是否回文的三種方法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-03-03
  • C++實現(xiàn)電子時鐘效果

    C++實現(xiàn)電子時鐘效果

    這篇文章主要為大家詳細介紹了C++實現(xiàn)電子時鐘效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C語言實現(xiàn)頁面置換算法(FIFO、LRU)

    C語言實現(xiàn)頁面置換算法(FIFO、LRU)

    這篇文章主要介紹了通過C語言實現(xiàn)的兩種頁面置換算法:先進先出(FIFO)頁面置換算法和最近最久未使用(LRU)頁面置換算法。文中的代碼具有一定的學(xué)習(xí)或工作價值,快來跟隨小編學(xué)習(xí)一下吧
    2021-12-12

最新評論