Qt多功能计算器(一)——基本功能

本文介绍了使用QtCreator构建一个多功能计算器的步骤,包括创建项目、搭建界面、定义槽函数以及实现计算逻辑。讲解了double与float的选择、QMessageBox、QString相关函数的使用,以及QTextEdit的文本设置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目介绍

项目的目标是实现一个多功能的计算器,下图是计算器在完成之后的菜单布局,从中可以看出计算器的功能。
在这里插入图片描述
在这里插入图片描述
图中是一个基本的计算器界面,本篇文章的内容就是搭建这样一个界面并实现逻辑。

创建新项目

本人使用的工具是QtCreator,从理论上说也可以使用其它支持QT的工具,创建项目的过程以QtCreator为例。

第一步:在软件菜单中点击,文件->新建文件或项目
在这里插入图片描述
第二步:选择“Qt Widgets Application”,点击“Choose…”
在这里插入图片描述
第三步:设置项目
在这里插入图片描述

  1. 名称随便起,我起的是calc
  2. 创建路径可以保持默认,建议自己选一个路径
  3. 复选框可选可不选
    在这里插入图片描述
    这里的类名和文件名可以随便起,只要符合c++的命名规范,但一定要选择创建ui文件
    其它选项保持默认就行

搭建界面

在这里插入图片描述
本人不怎么讲究界面布局,窗口和控件的大小都是随便拖出来的,这里放张图用来参考,图中方格的名称叫Grid Layout,可以将控件沿网格排布。计算器屏幕的名称叫Text Edit。
这里有一个命名表,建议按照表中的内容给各个控件命名,因为代码中会用到这些名称。同时在头文件中定义好相应的槽函数,并且在mainwindow.cpp中绑定控件和槽函数。

控件描述 控件名称
+按钮 btnPlus
-按钮 btnMinus
*按钮 btnMul
/按钮 btnDiv
0按钮 button0
1按钮 button1
2按钮 button2
3按钮 button3
4按钮 button4
5按钮 button5
6按钮 button6
7按钮 button7
8按钮 button8
9按钮 button9
.按钮 btnDot
退格按钮 btnDel
重置按钮 init
正负按钮 btnPM
=按钮 btnEqu
开根号按钮 btnSqrt
显示屏 screen
Grid Layout None
控件名称 信号函数 槽函数 槽函数参数
btnPlus QPushButton::clicked() MainWindow::calcBtnPushed() QString “plus”
btnMinus QPushButton::clicked() MainWindow::calcBtnPushed() QString “minus”
btnMul QPushButton::clicked() MainWindow::calcBtnPushed() QString “mul”
btnDiv QPushButton::clicked() MainWindow::calcBtnPushed() QString “div”
button0 QPushButton::clicked() MainWindow::numBtnPushed() double 0
button1 QPushButton::clicked() MainWindow::numBtnPushed() double 1
button2 QPushButton::clicked() MainWindow::numBtnPushed() double 2
button3 QPushButton::clicked() MainWindow::numBtnPushed() double 3
button4 QPushButton::clicked() MainWindow::numBtnPushed() double 4
button5 QPushButton::clicked() MainWindow::numBtnPushed() double 5
button6 QPushButton::clicked() MainWindow::numBtnPushed() double 6
button7 QPushButton::clicked() MainWindow::numBtnPushed() double 7
button8 QPushButton::clicked() MainWindow::numBtnPushed() double 8
button9 QPushButton::clicked() MainWindow::numBtnPushed() double 9
btnDot QPushButton::clicked() MainWindow::dotBtnPushed() None
btnDel QPushButton::clicked() MainWindow::delBtnPushed() None
init QPushButton::clicked() MainWindow::reBtnPushed() None
btnPM QPushButton::clicked() MainWindow::btnPMpushed() None
btnEqu QPushButton::clicked() MainWindow::equalBtnPushed() None
btnSqrt QPushButton::clicked() MainWindow::sqrtBtnPushed() None
// mainwindow.h
void numBtnPushed(double number);
void delBtnPushed();
void reBtnPushed();
void calcBtnPushed(QString btnName);
void equalBtnPushed();
void sqrtBtnPushed();
double calcHandle(QString calcType);
void dotBtnPushed();
void btnPMPushed();
// mainwindow.cpp
//数字按钮信号连接
connect(ui->button0,&QPushButton::clicked,this,[=]{
   MainWindow::numBtnPushed(0);});
connect(ui->button1,&QPushButton::clicked,this,[=]{
   MainWindow::numBtnPushed(1);});
connect(ui->button2,&QPushButton::clicked,this,[=]{
   MainWindow::numBtnPushed(2);});
connect(ui->button3,&QPushButton::clicked,this,[=]{
   MainWindow::numBtnPushed(3);});
connect(ui->button4,&QPushButton::clicked,this,[=]{
   MainWindow::numBtnPushed(4);});
connect(ui->button5,&QPushButton::clicked,this,[=]{
   MainWindow::numBtnPushed(5);});
connect(ui
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值