当前位置: 首页 > news >正文

QT实现计算器

1:在注册登录的练习里面,

追加一个QListWidget 项目列表

要求:点击注册之后,将账号显示到 listWidget上面去

以及,在listWidget中双击某个账号的时候,将该账号删除

Widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QByteArray>
#include <QWidget>
#include <QFile>
#include <QString>
#include <QListWidget>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();void seve_data(const QString& filename,const QString& data);QString load_data(const QString& filename);void seve_pwd(const QString& filename,const QString& data);QString load_pwd(const QString& filename);private slots:void on_lineEdit_textChanged(const QString &arg1);void on_lineEdit_2_textChanged(const QString &arg1);void on_pushButton_3_pressed();void on_pushButton_3_released();void on_pushButton_clicked();void on_listWidget_itemDoubleClicked(QListWidgetItem *item);private:Ui::Widget *ui;QFile file;
};
#endif // WIDGET_H

Widget.cpp

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QString name=load_data("D:/1.txt");ui->lineEdit->setText(name);QString pwd=load_pwd("D:/pwd.txt");ui->lineEdit_2->setText(pwd);
}Widget::~Widget()
{QString str=ui->lineEdit->text();seve_data("D:/1.txt",str);if(ui->checkBox->QCheckBox::checkState()==Qt::Checked){QString pwd=ui->lineEdit_2->text();seve_pwd("D:/pwd.txt",pwd);}delete ui;
}void Widget::seve_data(const QString &filename, const QString &data)
{file.setFileName(filename);file.open(QFile::WriteOnly);file.write(data.toLocal8Bit());file.close();
}QString Widget::load_data(const QString &filename)
{file.setFileName(filename);file.open(QFile::ReadOnly);QByteArray arr=file.readAll();QString str= QString::fromLocal8Bit(arr);file.close();return str;
}void Widget::seve_pwd(const QString &filename, const QString &data)
{file.setFileName(filename);file.open(QFile::WriteOnly);file.write(data.toLocal8Bit());file.close();
}QString Widget::load_pwd(const QString &filename)
{file.setFileName(filename);file.open(QFile::ReadOnly);QByteArray arr=file.readAll();QString str=QString::fromLocal8Bit(arr);file.close();return str;
}void Widget::on_lineEdit_textChanged(const QString &arg1)
{QString name=ui->lineEdit->text();QString pwd=ui->lineEdit_2->text();if(name.isEmpty() || pwd.isEmpty()){ui->pushButton->setEnabled(0);ui->pushButton_2->setEnabled(0);}else{ui->pushButton->setEnabled(1);ui->pushButton_2->setEnabled(1);}
}void Widget::on_lineEdit_2_textChanged(const QString &arg1)
{QString name=ui->lineEdit->text();QString pwd=ui->lineEdit_2->text();if(name.isEmpty() || pwd.isEmpty()){ui->pushButton->setEnabled(0);ui->pushButton_2->setEnabled(0);}else{ui->pushButton->setEnabled(1);ui->pushButton_2->setEnabled(1);}
}
//按下显示密码
void Widget::on_pushButton_3_pressed()
{ui->lineEdit_2->setEchoMode(QLineEdit::Normal);
}
//显示密码按钮弹起
void Widget::on_pushButton_3_released()
{ui->lineEdit_2->setEchoMode(QLineEdit::Password);
}void Widget::on_pushButton_clicked()
{QString name=ui->lineEdit->text();QList<QListWidgetItem *> item=ui->listWidget->findItems(name,Qt::MatchExactly);if(item.isEmpty()){ui->listWidget->addItem(name);}}void Widget::on_listWidget_itemDoubleClicked(QListWidgetItem *item)
{int row = ui->listWidget->row(item);delete ui->listWidget->takeItem(row);
}

main.cpp

#include "widget.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}

 

2.完成一个计算器,ui界面如下 完成 +-*/计算功能并且在对应位置显示对应的数据

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QString>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();private slots:void on_pushButton_13_clicked();void on_pushButton_14_clicked();void on_pushButton_15_clicked();void on_pushButton_9_clicked();void on_pushButton_10_clicked();void on_pushButton_11_clicked();void on_pushButton_5_clicked();void on_pushButton_6_clicked();void on_pushButton_7_clicked();void on_pushButton_2_clicked();void on_pushButton_clicked();void on_pushButton_4_clicked();void on_pushButton_8_clicked();void on_pushButton_12_clicked();void on_pushButton_16_clicked();void on_pushButton_3_clicked();private:Ui::Widget *ui;QString first;QString symbol;QString second;QString equal;int falg;
};
#endif // WIDGET_H

 widget.cpp

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget),falg(0)
{ui->setupUi(this);
}Widget::~Widget()
{delete ui;
}//  1
void Widget::on_pushButton_13_clicked()
{if(falg==0){first+='1';ui->lineEdit->setText(first);}else if(falg==1){second+='1';ui->lineEdit_2->setText(second);}
}
// 2
void Widget::on_pushButton_14_clicked()
{if(falg==0){first+='2';ui->lineEdit->setText(first);}else if(falg==1){second+='2';ui->lineEdit_2->setText(second);}
}
// 3
void Widget::on_pushButton_15_clicked()
{if(falg==0){first+='3';ui->lineEdit->setText(first);}else if(falg==1){second+='3';ui->lineEdit_2->setText(second);}
}
// 4
void Widget::on_pushButton_9_clicked()
{if(falg==0){first+='4';ui->lineEdit->setText(first);}else if(falg==1){second+='4';ui->lineEdit_2->setText(second);}
}
// 5
void Widget::on_pushButton_10_clicked()
{if(falg==0){first+='5';ui->lineEdit->setText(first);}else if(falg==1){second+='5';ui->lineEdit_2->setText(second);}
}
// 6
void Widget::on_pushButton_11_clicked()
{if(falg==0){first+='6';ui->lineEdit->setText(first);}else if(falg==1){second+='6';ui->lineEdit_2->setText(second);}
}
// 7
void Widget::on_pushButton_5_clicked()
{if(falg==0){first+='7';ui->lineEdit->setText(first);}else if(falg==1){second+='7';ui->lineEdit_2->setText(second);}
}
// 8
void Widget::on_pushButton_6_clicked()
{if(falg==0){first+='8';ui->lineEdit->setText(first);}else if(falg==1){second+='8';ui->lineEdit_2->setText(second);}
}
// 9
void Widget::on_pushButton_7_clicked()
{if(falg==0){first+='9';ui->lineEdit->setText(first);}else if(falg==1){second+='9';ui->lineEdit_2->setText(second);}
}
// 0
void Widget::on_pushButton_2_clicked()
{if(falg==0){first+='0';ui->lineEdit->setText(first);}else if(falg==1){second+='0';ui->lineEdit_2->setText(second);}
}
// C
void Widget::on_pushButton_clicked()
{first.clear();ui->lineEdit->setText(first);second.clear();ui->lineEdit_2->setText(second);symbol.clear();ui->label->setText(symbol);equal.clear();ui->lineEdit_3->setText(equal);falg=0;
}
// +
void Widget::on_pushButton_4_clicked()
{falg=1;symbol='+';ui->label->setText(symbol);
}
// -
void Widget::on_pushButton_8_clicked()
{falg=1;symbol='-';ui->label->setText(symbol);
}
// *
void Widget::on_pushButton_12_clicked()
{falg=1;symbol='*';ui->label->setText(symbol);
}
// ‘/’
void Widget::on_pushButton_16_clicked()
{falg=1;symbol='/';ui->label->setText(symbol);
}
// =
void Widget::on_pushButton_3_clicked()
{falg=2;double f=atoi(first.toLocal8Bit().data());double s=atoi(second.toLocal8Bit().data());if(symbol=='+'){double result=f+s;QString r;r.setNum(result);ui->lineEdit_3->setText(r);}else if(symbol=='-'){double result=f-s;QString r;r.setNum(result);ui->lineEdit_3->setText(r);}else if(symbol=='*'){double result=f*s;QString r;r.setNum(result);ui->lineEdit_3->setText(r);}else{double result=f/s;QString r;r.setNum(result);ui->lineEdit_3->setText(r);}}

 main.cpp

#include "widget.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}

 

 

 

相关文章:

QT实现计算器

1&#xff1a;在注册登录的练习里面&#xff0c; 追加一个QListWidget 项目列表 要求&#xff1a;点击注册之后&#xff0c;将账号显示到 listWidget上面去 以及&#xff0c;在listWidget中双击某个账号的时候&#xff0c;将该账号删除 Widget.h #ifndef WIDGET_H #define…...

Go红队开发—语法补充

文章目录 错误控制使用自定义错误类型错误包装errors.Is 和 errors.Aspanic捕获、recover 、defer错误控制练习 接口结构体实现接口基本类型实现接口切片实现接口 接口练习Embed嵌入文件 之前有师傅问这个系列好像跟红队没啥关系&#xff0c;前几期确实没啥关系&#xff0c;因为…...

二、Redis 安装与基本配置:全平台安装指南 服务器配置详解

Redis 安装与基本配置:全平台安装指南 & 服务器配置详解 Redis 作为高性能的内存数据库,其安装和配置是使用 Redis 的第一步。本篇文章将全面介绍 Redis 的安装方式,覆盖 Windows、Linux、Docker 环境,并详细讲解 Redis 的基础配置,包括 持久化、日志、端口设置等。此…...

halcon学习笔记1

环境的搭建就不说了&#xff0c;主要是作者在入职后的实际学习与实践。 打开应用程序 这里作者的个人理解是1号区域主要是可以观察到读取的图像以及后续对图像进行何种操作&#xff0c;2的算子类似于Opencv中的API&#xff0c;可以在上面进行参数的调整&#xff0c;例如read_I…...

解决Docker拉取镜像超时错误,docker: Error response from daemon:

当使用docker pull或docker run时遇到net/http: request canceled while waiting for connection的报错&#xff0c;说明Docker客户端在访问Docker Hub时出现网络连接问题。可以不用挂加速器也能解决&#xff0c;linux不好用clash。以下是经过验证的方法&#xff08;感谢轩辕镜…...

Masscan下载Linux安装

masscan 是一款高速的端口扫描工具&#xff0c;能够在极短的时间内扫描大量IP地址和端口。以下是关于如何在Linux系统上下载并安装 masscan 的详细步骤。 ### 通过包管理器安装 对于一些Linux发行版&#xff0c;你可以直接使用系统的包管理器来安装 masscan。例如&#xff0c…...

js的简单介绍

一.javascript&#xff08;是什么&#xff09; 是一种运行在客户端(浏览器)的编程语言&#xff0c;实现人机交互效果 作用 网页特效&#xff08;监听客户的一些行为让网页做出对应的反馈&#xff09;表单验证(针对表格数据的合法性进行判断)数据交互(获取后台的数据&#xf…...

神经网络 - 激活函数(Swish函数、GELU函数)

一、Swish 函数 Swish 函数是一种较新的激活函数&#xff0c;由 Ramachandran 等人在 2017 年提出&#xff0c;其数学表达式通常为 其中 σ(x) 是 Sigmoid 函数&#xff08;Logistic 函数&#xff09;。 如何理解 Swish 函数 自门控特性 Swish 函数可以看作是对输入 x 进行“…...

关于后端使用Boolean或boolean时前端收到的参数的区别

当后端使用的是Boolean时&#xff0c;调用的方法是setIsLoginUser&#xff0c;前端收到的参数的参数名是isLoginUser 而当后端使用的是boolean时&#xff0c;调用的方法是setLoginUser&#xff0c;前端收到的参数的参数名是loginUser 封装类和基本数据类型在使用时需要注意这…...

笔记:代码随想录算法训练营第35天: 01背包问题 二维、 01背包问题 一维 、LeetCode416. 分割等和子集

学习资料&#xff1a;代码随想录 这一块儿学得挺痛苦 注&#xff1a;文中含大模型生成内容 动态规划&#xff1a;01背包理论基础 卡码网第46题 思路&#xff1a;五部曲 定义&#xff1a;dp[i][j]为第i个物品背包容量为j&#xff0c;能装下的最大价值 递推公式&#xff1…...

安装 Windows Docker Desktop - WSL问题

一、关联文章: 1、Docker Desktop 安装使用教程 2、家庭版 Windows 安装 Docker 没有 Hyper-V 问题 3、打开 Windows Docker Desktop 出现 Docker Engine Stopped 问题 二、问题解析 打开 Docker Desktop 出现问题,如下: Docker Desktop - WSL update failed An error o…...

Spring MVC 返回数据

目录 1、什么是 SpringMVC2、返回数据2.1、返回 JSON 对象2.2、请求转发2.3、请求重定向2.4、自定义返回的内容 1、什么是 SpringMVC 1、Tomcat 和 Servlet 分别是什么&#xff1f;有什么关系&#xff1f; Servlet 是 java 官方定义的 web 开发的标准规范&#xff1b;Tomcat 是…...

QT-信号与槽

1.在注册登录的练习里面&#xff0c;追加一个QListWidget项目列表 要求:点击注册之后&#xff0c;将账号显示到列表窗口小部件上面去 以及&#xff0c;在列表窗口小部件中双击某个账号的时候&#xff0c;将该账号删除 头文件 #ifndef WIDGET_H #define WIDGET_H #include <…...

版图自动化连接算法开发 00001 ------ 直接连接两个给定的坐标点

版图自动化连接算法开发 00001 ------ 直接连接两个给定的坐标点 引言正文定义坐标点的类绘图显示代码直接连接两个坐标点引言 由于人工智能的加速普及,每次手动绘制版图都会觉得特别繁琐,作者本人在想可否搞一个自动化连接器件端口的算法,后期可以根据一些设定的限制进行避…...

迷你世界脚本方块接口:Block

方块接口&#xff1a;Block 彼得兔 更新时间: 2024-08-27 11:04:56 具体函数名及描述如下&#xff1a; 序号 函数名 函数描述 1 isSolidBlock(...) 是否是固体方块 2 isLiquidBlock(...) 是否是液体方块 3 isAirBlock(...) 是否是气体方块 4 getBl…...

打造高清3D虚拟世界|零基础学习Unity HDRP高清渲染管线(第一天)

打造高清3D虚拟世界|零基础学习Unity HDRP高清渲染管线&#xff08;第一天&#xff09; 前言最后 前言 说真的&#xff0c;用Unity工作这几年&#xff0c;经历的项目大大小小&#xff0c;对于场景的渲染算是有一定的经验&#xff0c;但涉及到HDRP高清渲染管线的了解&#xff0…...

Docker项目部署-部署前端

nginx.conf文件内容如下。 worker_processes 1;events {worker_connections 1024; }http {include mime.types;default_type application/json;sendfile on;keepalive_timeout 65;server {listen 18080;# 指定前端项目所在的位置location / {root /usr/…...

【向量数据库Weaviate】与ChromaDB的差异、优劣

以下是 Weaviate 和 ChromaDB 的详细对比&#xff0c;涵盖设计目标、核心功能、性能、适用场景及优劣势分析&#xff1a; 1. 核心定位与设计目标 维度WeaviateChromaDB类型向量数据库 图数据库&#xff08;支持混合搜索&#xff09;轻量级纯向量数据库&#xff08;专注嵌入存…...

2024华为OD机试真题-热点网站统计(C++)-E卷-100分

2024华为OD机试最新E卷题库-(C卷+D卷+E卷)-(JAVA、Python、C++) 目录 题目描述 输入描述 输出描述 用例1 用例2 考点 题目解析 代码 c++ 题目描述 企业路由器的统计页面,有一个功能需要动态统计公司访问最多的网页 URL top N。 请设计一个算法,可以高效动态统计 …...

【大模型】大模型分类

大模型&#xff08;Large Models&#xff09;通常指参数量巨大、计算能力强大的机器学习模型&#xff0c;尤其在自然语言处理&#xff08;NLP&#xff09;、计算机视觉&#xff08;CV&#xff09;等领域表现突出。以下是大模型的常见分类方式&#xff1a; 1. 按应用领域分类 …...

OpenHTMLtoPDF:Java生态下的专业级HTML转PDF解决方案

OpenHTMLtoPDF&#xff1a;Java生态下的专业级HTML转PDF解决方案 【免费下载链接】openhtmltopdf An HTML to PDF library for the JVM. Based on Flying Saucer and Apache PDF-BOX 2. With SVG image support. Now also with accessible PDF support (WCAG, Section 508, PDF…...

[特殊字符]️ 信创服务器深度解析:从CPU到操作系统,一文搞懂国产化替代全栈方案

标签&#xff1a;信创 国产化 服务器 CPU选型 海光 鲲鹏 &#x1f3af; 开篇导读 你是否在国产化替代项目中不知道选哪款CPU&#xff1f;网上搜到的信创资料要么只讲政策不讲技术&#xff0c;要么直接给产品列表却不解释选型逻辑。本文将从信创服务器的四层架构&#xff08;硬…...

突发!Karpathy 加入 Anthropic,重回一线搞研发

①就在刚刚不久&#xff0c;前 OpenAI 创始团队成员 Andrej Karpathy 发推宣布加入 Anthropic。我已加入 Anthropic。我认为未来几年大语言模型&#xff08;LLM&#xff09;领域的前沿发展将极具塑造性。我非常兴奋能加入这里的团队&#xff0c;重新投入研发工作。我对教育事业…...

java中的进程的详细解析

JavaEE 初阶&#xff08;进程&#xff09; 一、操作系统 操作系统是计算机中的一个重要软件。 操作系统是一个搞管理的软件&#xff1a; 管理各种硬件设备给各种应用程序提供一个稳定的运行环境&#xff0c; 这些应用程序在运行中&#xff0c;即使有一个应用程序发生bug崩溃了&…...

链路层协议

链路层协议要解决哪些问题。有哪些二层网络&#xff0c;其链路层协议是什么 链路层&#xff08;数据链路层&#xff0c;OSI模型第二层&#xff09;的主要功能是在物理层提供的物理连接基础上&#xff0c;提供可靠的数据传输服务。它负责将原始的物理连接转化为无差错、有逻辑结…...

模型替换易,工作流锁定难!AI 锁定效应转移,企业决策何去何从?

模型替换易&#xff0c;工作流锁定难模型替换正变得越来越容易&#xff0c;但围绕模型的操作、集成和治理机制却难以更换。近日&#xff0c;普华永道&#xff08;PwC&#xff09;宣布为 3 万名员工提供有关 Anthropic 公司 Claude 模型的培训和认证&#xff0c;并围绕该模型为银…...

用FPGA的DDS IP核做个信号发生器:从Vivado配置到ILA抓波形实战

基于FPGA的DDS信号发生器实战&#xff1a;从IP核配置到硬件调试全解析 在数字信号处理领域&#xff0c;直接数字频率合成(DDS)技术因其频率分辨率高、切换速度快和相位连续可调等优势&#xff0c;已成为现代电子系统中不可或缺的核心技术。本文将带领读者完成一个完整的FPGA-ba…...

用STM32F103C8T6给小车装上‘眼睛’:HC-SR04超声波+SG90舵机云台避障保姆级教程

用STM32F103C8T6打造智能小车感知系统&#xff1a;超声波与舵机云台的深度整合实战 在嵌入式系统开发领域&#xff0c;赋予机器"感知-决策-执行"的能力是一个令人着迷的课题。当我们把目光投向智能小车这个经典平台时&#xff0c;如何让它像生物一样具备环境感知能力…...

一条 SQL 干掉 8 秒卡顿,只因改了一个索引

一条 SQL 干掉 8 秒卡顿,只因改了一个索引 上周五晚上十一点,线上告警突然炸了,用户反馈下单接口卡成 PPT。打开慢查询日志一看,一条最普通的订单查询 SQL 居然跑了 8 秒多。当时我脑子里只有一个念头:这条 SQL 我上周才写的,测试环境明明只要 200 毫秒啊。排查了一整晚,…...

SD-PPP:打破Photoshop与AI壁垒的革命性插件

SD-PPP&#xff1a;打破Photoshop与AI壁垒的革命性插件 【免费下载链接】sd-ppp A Photoshop AI plugin 项目地址: https://gitcode.com/gh_mirrors/sd/sd-ppp 你是否曾在Photoshop中精心设计到一半&#xff0c;却不得不切换到其他AI工具进行图像生成&#xff0c;然后再…...