QT 简易计算器

【Qt5】实现简易计算器 实现2个数进行四则运算的计算器。 阅读详情

在这里插入图片描述

#include "widget.h"
#include "ui_widget.h"
#include <QScriptEngine>
#include <QMessageBox>>
#include <QIcon>
#include <QFont>


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

    // 中文后面不加空格,无法正常编译,加了之后乱码
    this->setWindowTitle("计算器 ");

    // 设置lineEdit右边对齐
    ui->lineEdit->setAlignment(Qt::AlignRight);

    // 设置lineEdit字体大小
    QFont font("仿宋", 10);
    ui->lineEdit->setFont(font);

    // 设置删除按钮以图片形式加载
    QIcon icon("D:\\workspace\\qt\\caculator\\back.PNG");
    ui->backButton->setIcon(icon);

    // 设置等号button背景为绿色
    ui->equalButton->setStyleSheet("background:green");
}

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


void widget::on_equalButton_clicked()
{
    try {
        // 使用script中的evaluate,需要安装这个QScriptEngine插件库
        QScriptEngine engine;
        QScriptValue res = engine.evaluate(this->expression);
        QString value = res.toString();
        ui->lineEdit->setText(value);
    } catch (...) {
        QMessageBox box;
        box.setText(this->expression + "is invalid");
    }

}


void widget::on_pointButton_clicked()
{
    this->expression += ".";
    ui->lineEdit->setText(this->expression);
}


void widget::on_zeroButton_clicked()
{
    this->expression += "0";
    ui->lineEdit->setText(this->expression);
}


void widget::on_modButton_clicked()
{
    this->expression += "%";
    ui->lineEdit->setText(this->expression);
}


void widget::on_oneButton_clicked()
{

    this->expression += "1";
    ui->lineEdit->setText(this->expression);
}


void widget::on_twoButton_clicked()
{
    this->expression += "2";
    ui->lineEdit->setText(this->expression);

}


void widget::on_threeButton_clicked()
{
    this->expression += "3";
    ui->lineEdit->setText(this->expression);

}


void widget::on_addButton_clicked()
{
    this->expression += "+";
    ui->lineEdit->setText(this->expression);

}


void widget::on_sixButton_clicked()
{
    this->expression += "6";
    ui->lineEdit->setText(this->expression);

}


void widget::on_fiveButton_clicked()
{
    this->expression += "5";
    ui->lineEdit->setText(this->expression);

}


void widget::on_fourButton_clicked()
{
    this->expression += "4";
    ui->lineEdit->setText(this->expression);
}


void widget::on_subButton_clicked()
{
    this->expression += "-";
    ui->lineEdit->setText(this->expression);
}


void widget::on_nineButton_clicked()
{
    this->expression += "9";
    ui->lineEdit->setText(this->expression);
}


void widget::on_eightButton_clicked()
{
    this->expression += "8";
    ui->lineEdit->setText(this->expression);
}


void widget::on_sevenButton_clicked()
{
    this->expression += "7";
    ui->lineEdit->setText(this->expression);
}


void widget::on_backButton_clicked()
{
    this->expression.chop(1);
    ui->lineEdit->setText(this->expression);

}


void widget::on_mutiButton_clicked()
{
    this->expression += "*";
    ui->lineEdit->setText(this->expression);
}


void widget::on_divButton_clicked()
{
    this->expression += "/";
    ui->lineEdit->setText(this->expression);
}


void widget::on_clearButton_clicked()
{
    this->expression.clear();
    ui->lineEdit->setText(this->expression);
}


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

相关推荐

QT入门项目--简易计算器

QT入门项目–简易计算器 目录QT入门项目--简易计算器一、前言二、运行界面三、代码dialog.hdialog.cppdoexpr.hdoexpr.cppcheck.hcheck.cpp四、总结 一、前言 C语言快要结课了,自然少不了大作业,在众多选项中看中了简易计算器(其实每一项都研究了,发现自己太菜只能选计算器)。 虽然是C语言大作业,但代码是C++,作业要求推荐图形设计使用MFC,在B站看...

小朱的博客 3111

Qt实现简易计算器

最近没事在学习Qt,做了一个简易计算器的小设计。记录在此,方便大家,也方便自己。 一、整体方案设计 本设计总体可分为两个部分,界面设计部分和内部逻辑部分。下面分别进行讲解。 二、界面设计部分: 界面设计入上图所示一些按钮和一个QLineEdit(用于输入数字和显示结果)和QLabel(用于显示运算表达式)。 本部分主要是采用界面设计师(直接拖拽设计)和代码设计部分。其中代码设计部分主要是为了完成...

xiaopan的博客 3万+

QT5 实现简易科学计算器

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

qq_43518938的博客 4064

QT开发之简易计算器

本文介绍了使用Qt框架开发简易计算器的全过程。项目基于QtWidgets和C++实现,支持基本四则运算,包含清晰的UI界面和完整的计算逻辑。文章详细说明了开发环境(Qt6.9.1)、项目结构、代码框架(包括主程序入口、计算器类定义和UI设计),重点解析了核心计算算法的栈实现方法。项目采用CMake构建,适合Qt初学者学习参考。最后提出了优化方向:支持浮点运算、增强错误处理、添加历史记录和完善高级运算功能。该计算器项目完整展示了Qt应用开发的基本流程,为后续功能扩展奠定了基础。

IKUN2333的博客 1236

qt实现一个简易的计算器

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

BIUZJ的博客 2241

c++实现简易计算器,并且利用QT实现图形交互,QT ui界面简单使用!(让你少走弯路,一天搞定计算器课程设计)

c++实现简易计算器,并且利用QT实现图形交互(让你少走弯路,一天搞定计算器课程设计) **前提:**已回计算器代码的实现,如若不会请翻到文章最下方先看懂计算器代码实现; ## 下载QT :(跟着下方链接走,强烈建议下载5.6版本以上) [https://blog.youkuaiyun.com/weixin_38293453/article/details/104143560] QT新建文件: 点击新建: 从左往右依次点击: 自己决定文件名称和保存路径,然后点击下一步 ps:名称和路径均不能出现中文 这里直接全选即可,

QAQjiaru233的博客 4670

Qt实践2: 简易计算器

Qt实现简易计算器 Qt实践1: 简易计算器 引言 因课程教学,需要利用Qt做图形界面设计(GUI)。自学Qt两月有余,图书(Qt Creator快速入门_第三版)、B站视频(传智教育的Qt教学视频等)等资源看了几遍,大部分资料都是讲述纯代码C++编程实现GUI, 新手上手难,不利于课程教学(课程设计,3周教学和实践时间)。因此,基于Qt Creator平台的UI 设计模式,先进行界面布局设计,再利用槽函数模板,适当编写C++程序,实现功能。这样大大减少C++代码的编写, 设计思路也明朗,学生只要按照实现

leyan118的博客 5507

【实训】 QT调试——简易计算器

一、设置断点 调试的方法一般即设置断点,然后按步骤进行调试: 在你需要debug的地方,鼠标右键该行行号,点击设置断点。 设置断点后,点击左下角的调试或F5进行调试,这是程序先进入调试模式。 在调试界面上,有“继续”、“停止调试”、“单步跳过”、“单步进入”、“单步跳出”等(其中后两个是配合使用的),同时会显示堆栈视图和其他视图。 二、单步调试 点击“单步进入”按钮,或直接按下F...

weixin_45369576的博客 735

QT项目之简易计算器

123

weixin_45799452的博客 669

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

软件工程的作业,让写一个计算器,为此花两天抽时间看了看Qt入门,然后就开搞了。 环境Qt 5.13.1,MinGw 7.3.0 32-bit,IDE:Qt Creator 4.10.0 新建Qt Widgets 应用,项目名称Calculator,基类选择GWidget,类名MyWidget。 1.首先是页面,直接拖拖拖,没用栅格,先垂直在水平布局了,改了一点参数,解决问题。 2.编...

Alfa_Jin的博客 5380

使用Qt和C++实现简易计算器

控制结构是程序中用于控制执行流程的结构,包括条件语句(如 if-else)和循环结构(如 for、while 和 do-while):// 如果 condition 为真,则执行} else {// 如果 condition 为假,则执行i < 10;++i) {// 循环执行 10 次// 当 condition 为真时循环执行do {// 至少执行一次循环体内的代码函数是程序的独立代码块,用于完成特定的任务。

weixin_42124497的博客 993

linux 下Qt初级教程(一)实现简易的计算器

Qt初级教程(一)实现简易的计算器 本文原创作者:冯一川(ifeng12358@163.com),如有转载,请注明原作者及出处。 本文软件环境linux(Ubuntu)+Qt 5.6.0。 源代码github地址:Linux下的简易计算器(Qt) 本文使用的技术点有: 1、信号和槽的使用,包括(emit)的使用; 2、字符串的处理,QString函数; 3、QLabel的边框设...

ifeng12358的博客 9695

Qt 实现简易计算器

QWidget 实现简易计算器。

qq_32863863的博客 808

使用QT做一个简易计算器

使用QT做一个简易计算器 由于比较简单下面就直接给出源码,直接拷贝就可以使用 头文件 #ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); pr

xiyou666的博客 2079

Win11/Win10系统下,Proe5.0 M280终极版保姆级安装与激活指南(含SSQ补丁避坑)

本文提供Win11/Win10系统下Pro/E 5.0 M280终极版的详细安装与激活指南,涵盖环境配置、SSQ补丁应用及常见问题解决方案。通过系统调整、分步安装和性能优化,确保软件在现代操作系统上的稳定运行,特别适合机械设计用户参考。

weixin_30895059的博客 446

保姆级教程:用AdGuard DNS代理实现全设备广告过滤(含Win/Mac/安卓/iOS配置)

本文提供了一份详尽的AdGuard DNS代理配置指南,帮助用户在全设备(Win/Mac/安卓/iOS)上实现广告过滤。通过系统级DNS设置,AdGuard能有效拦截广告、跟踪器和恶意网站,提升隐私保护和浏览效率。教程涵盖原理说明、各平台配置步骤及高级优化技巧,适合不同技术水平的用户。

weixin_42656416的博客 826

用Qt设计一个简易计算器

Qt工作原理: 事件驱动,信号与槽原理。 要实现简易计算器的设计需要将界面按钮转到槽,具体程序如下:

jhgkjasfg的博客 2225

关于RTP时间戳以及播放器对时间戳的处理

首先,了解时间戳几个基本概念: 时间戳单位:时间戳计算的单位不是秒之类的单位,而是由采样频率所代替的单位,这样做的目的就是为了是时间戳单位更为精准。比如说一个音频的采样频率为8000Hz,那么我们可以把时间戳单位设为1 / 8000。 时间戳增量:相邻两帧之间的时间差(以时间戳单位为基准)。 采样频率: 有些地方也叫时钟频率,即 每秒钟抽取样本的次数,例如音频的采...

toshiba689的专栏 3052

基于QT5实现简易计算器

基于QT5实现简易计算器一、写在前面二、成品展示三、界面布局四、按钮功能五、源码下载六、补充 一、写在前面 软件介绍: 仿照win10计算器,基于qt5实现具有简单运算的计算器。 环境: QT 5.12.2+QT Creator 4.8.2+win10 二、成品展示 按照惯例,直接上图 在按钮上鼠标悬停与按下有不同颜色 三、界面布局 可以看到我使用的是一个网格布局GridLayout和四个垂直布局VerticalLayout,每个垂直布局对应的是一列按钮。先把VerticalLayout拖出

每天进步一点点! 1987

JS逆向实战:从宿务航空机票搜索到参数签名算法解析

在现代Web应用开发中,前端与后端的数据交互安全是核心技术环节。其原理通常涉及参数签名、令牌验证等机制,用于防止未授权访问和数据篡改。这些技术的核心价值在于保障接口调用的合法性与数据完整性,广泛应用于电商、金融、旅行预订等对数据安全要求较高的场景。以机票搜索为例,网站常通过动态生成的签名参数来验证请求来源。本文以宿务太平洋航空为案例,深入解析其搜索请求中关键参数(如signature)的生成逻辑,并演示如何通过浏览器开发者工具进行断点调试、变量追踪,最终使用Node.js与crypto-js库本地复现完整请

weixin_26642481的博客 752

解释多智能体强化学习(Multi-Agent Reinforcement Learning)(面试题200合集,中频、重要)

多智能体强化学习通过扩展传统强化学习框架,研究多个智能体在动态、交互环境中的策略优化问题。它既有理论上的挑战(如非平稳性和均衡求解),也有广泛的实际应用前景。数学上,它依赖马尔可夫博弈模型,核心是设计算法让智能体在合作或竞争中达到最优。

qq_38334677的博客 990

基于qt5实现简易计算器

基于qt5实现简易计算器 去发现同类优质开源项目:https://gitcode.com/ 此仓库提供的是一个基于qt5开发的简易计算器项目,该项目仿照了Win10系统下的计算器界面与功能,实现了基本的运算操作。 项目描述 本项目利用QT 5.12.2版本,结合QT Creator 4.8.2开发工具,在Win10操作系统上开发而成。计算器具备以下特点: 界面简洁,模仿Win10计算器的设计风格...

gitblog_06762的博客 323

微信文件自动归档!手把手教你用OpenClaw搭个自己的“数字员工”,告别重复劳动

很多人说“AI是未来”,但未来不是靠喊口号的。OpenClaw的真正价值,是让你把重复劳动交出去,把时间留给真正需要创造力的事。这事真能干,而且不难。下载OpenClaw(GitHub仓库按我写的步骤跑一遍遇到坑,评论区留言——我亲自帮你看作者后记:上周五,我让AI自动归档了文件后,终于在5点准时下班。回家路上,我给它发了条消息:“干得漂亮”。它没回,但我知道——它在默默等我的下一条指令。

2601_94871597的博客 415

QT之简易计算器的实现

以前简单的学过QT,但这次重新学习感觉难度好大,可能是老了吧!哈哈 这是一个参考别人的程序再敲出来的,稍有改变。不会涉及侵权吧! (如有,请联系删除吧!哈哈) 这是一个简易的计算器,可以实现基本的加减乘除,不过是手动输入式,不是按键的。 整体窗体只有两个控件,所以很清晰很简洁。 这是整体界面: 下面是代码: mainwindow.h: #ifndef MAINWINDOW_H ...

caoj_huangy的博客 620

Nvidia Jetson 编解码开发(3)解决H265解码报错“PPS id out of range”

基于之前的开发程序通过Jetson Xavier NX 硬编码的H265发出后,上位机断点播放发出来的H265码流,会报“PPS id out of range” 错误。

jzwjzw19900922的博客 3812

【人工智能】架构演进:基于本体论与 LLM Agent 的供应链备件决策闭环实践

本文探讨了如何将本体论(Ontology)与大语言模型(LLM)Agent结合,构建供应链备件管理的智能决策系统。针对LLM在垂直领域存在的幻觉和逻辑缺陷问题,提出通过本体论建立结构化知识框架,形成四层架构:知识建模、动态感知、深度分析和决策闭环。系统利用图数据库实例化领域本体,融合多源数据实现实时感知,结合图谱推理和时序预测进行确定性分析,最终通过工具调用完成决策执行。技术选型推荐Gemini 1.5 Pro、Neo4j和LangChain等工具,实现从自动化到智能化的升级。该架构为工业领域提供了可解释、

奶爸的编程之路,也就一周冷个三天 172
上一篇: QT 信号与槽
下一篇: QT Object定时器使用
最后冰吻free
博客等级 码龄12年 121粉丝 371原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值