Qt计算器功能
梁光林 人气:0该计算器主要通过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的使用方法。
加载全部内容