QT study DAY2
作业

代码
Widget.h
class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();void save_data(const QString& filename,const QString& data);
private slots:void on_lineEdit_textChanged(); //账户栏void on_lineEdit_2_textChanged(); //密码栏void on_radioButton_clicked(bool checked); //显示密码//新增代码void on_logButton_clicked(); //登录按钮void on_listWidget_itemDoubleClicked(QListWidgetItem *item); //listWidget双击private:Ui::Widget *ui;QFile file;
};
#endif // WIDGET_H
Widget.cpp
//新增代码//登录按键 点击事件
void Widget::on_logButton_clicked()
{QString name = ui->lineEdit->text();QList<QListWidgetItem *> res = ui->listWidget->findItems(name,Qt::MatchExactly);if(res.isEmpty()){ui->listWidget->addItem(name);}
}
//listWidget 双击事件
void Widget::on_listWidget_itemDoubleClicked(QListWidgetItem *item)
{int row = ui->listWidget->row(item);ui->listWidget->takeItem(row);
}
效果
双击之前

双击之后

作业

代码
Widget.h
class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();private slots:// 数字按键部分void on_pushButton_0_clicked();void on_pushButton_1_clicked();void on_pushButton_2_clicked();void on_pushButton_3_clicked();void on_pushButton_4_clicked();void on_pushButton_5_clicked();void on_pushButton_6_clicked();void on_pushButton_7_clicked();void on_pushButton_8_clicked();void on_pushButton_9_clicked();// 加减乘除void on_pushButton_add_clicked();void on_pushButton_sub_clicked();void on_pushButton_mul_clicked();void on_pushButton_div_clicked();// 其他按键void on_pushButton_clear_clicked();void on_pushButton_res_clicked();
private:Ui::Widget *ui;QString str; // 第一个数QString ch; // 加减乘除QString str2; // 第二个数QString res; // 结果int line = 1; // 标志位
};
#endif
Widget.cpp
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);
}Widget::~Widget()
{delete ui;
}
/*************** 数字键盘区 ***************/
void Widget::on_pushButton_0_clicked()
{if(line == 1){str+='0';ui->mainLineEdit->setText(str);}else if(line == 0){str2+='0';ui->mainLineEdit_2->setText(str2);}
}void Widget::on_pushButton_1_clicked()
{if(line == 1){str+='1';ui->mainLineEdit->setText(str);}else if(line == 0){str2+='1';ui->mainLineEdit_2->setText(str2);}
}void Widget::on_pushButton_2_clicked()
{if(line == 1){str+='2';ui->mainLineEdit->setText(str);}else if(line == 0){str2+='2';ui->mainLineEdit_2->setText(str2);}
}void Widget::on_pushButton_3_clicked()
{if(line == 1){str+='3';ui->mainLineEdit->setText(str);}else if(line == 0){str2+='3';ui->mainLineEdit_2->setText(str2);}
}void Widget::on_pushButton_4_clicked()
{if(line == 1){str+='4';ui->mainLineEdit->setText(str);}else if(line == 0){str2+='4';ui->mainLineEdit_2->setText(str2);}
}void Widget::on_pushButton_5_clicked()
{if(line == 1){str+='5';ui->mainLineEdit->setText(str);}else if(line == 0){str2+='5';ui->mainLineEdit_2->setText(str2);}
}void Widget::on_pushButton_6_clicked()
{if(line == 1){str+='6';ui->mainLineEdit->setText(str);}else if(line == 0){str2+='6';ui->mainLineEdit_2->setText(str2);}
}void Widget::on_pushButton_7_clicked()
{if(line == 1){str+='7';ui->mainLineEdit->setText(str);}else if(line == 0){str2+='7';ui->mainLineEdit_2->setText(str2);}
}void Widget::on_pushButton_8_clicked()
{if(line == 1){str+='8';ui->mainLineEdit->setText(str);}else if(line == 0){str2+='8';ui->mainLineEdit_2->setText(str2);}
}void Widget::on_pushButton_9_clicked()
{if(line == 1){str+='9';ui->mainLineEdit->setText(str);}else if(line == 0){str2+='9';ui->mainLineEdit_2->setText(str2);}
}
/*************** 加减乘除区 ***************/
void Widget::on_pushButton_add_clicked()
{ch = '+';line = 0;ui->label->setText("+");
}void Widget::on_pushButton_sub_clicked()
{ch = '-';line = 0;ui->label->setText("-");
}void Widget::on_pushButton_mul_clicked()
{ch = '*';line = 0;ui->label->setText("*");
}void Widget::on_pushButton_div_clicked()
{ch = '/';line = 0;ui->label->setText("/");
}/*************** 数字键盘区 ***************/
void Widget::on_pushButton_clear_clicked()
{if(line == 1){str.clear();ui->mainLineEdit->setText(str);}else if(line == 0){str2.clear();ui->mainLineEdit_2->setText(str2);}else if(line == 3){str.clear();str2.clear();ui->mainLineEdit->setText("");ui->mainLineEdit_2->setText("");ui->resEdit->setText("");line = 1;}
}
/*************** 数字键盘区 ***************/
void Widget::on_pushButton_res_clicked()
{//QString 转 intint index1 = str.toInt();int index2 = str2.toInt();//加减乘除if(ch == '+'){int int_res = index1 + index2;QString string_res = QString::number(int_res);ui->resEdit->setText(string_res);}else if(ch == '-'){int int_res = index1 - index2;QString string_res = QString::number(int_res);ui->resEdit->setText(string_res);}else if(ch == '*'){int int_res = index1 * index2;QString string_res = QString::number(int_res);ui->resEdit->setText(string_res);}else if(ch == '/'){int int_res = index1 / index2;QString string_res = QString::number(int_res);ui->resEdit->setText(string_res);}//说明计算完毕,再次点击C会清除所有line = 3;
}
效果
加减乘除

C键效果

相关文章:
QT study DAY2
作业 代码 Widget.h class Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);~Widget();void save_data(const QString& filename,const QString& data); private slots:void on_lineEdit_textChanged(); //账户栏void on_l…...
QT-自定义参数设计框架软件
QT-自定义参数设计框架软件 Chapter1 QT-自定义参数设计框架软件前言一、演示效果二、使用步骤1.应用进行参数注册2.数据库操作单例对象3.参数操作单例对象 三、下载链接 Chapter2 Qt中管理配置参数(QSettings、单例模式)1 前言2 QSettings类ini文件写in…...
VUE集成Live2d
VUE集成Live2d 目前基于大模型,可以实现一个桌面的3D动画小人,个人猜测可以简介这个项目进行实现 1-参考网址 试了很多项目,只有这个项目直观的把问题说清楚了 Live2D Vue3技术应用:https://blog.csdn.net/hh1233321/article/details/1406947…...
【CPP面经】科大讯飞 腾讯后端开发面经分享
文章目录 C 面试问题整理基础问题简答1. 内存对齐2. this 指针3. 在成员函数中删除 this4. 引用占用内存吗?5. C 越界访问场景6. 进程通信方式7. 无锁队列实现8. ping 在哪一层?实现原理?9. HTTPS 流程10. GDB 使用及 CPU 高使用定位11. 智能…...
el-card 结合 el-descriptions 作为信息展示
记录下el-card 组合 el-descriptions 实现动态展示信息 文章结构 实现效果1. el-descriptions 组件使用1.1 结合v-for实现列表渲染1.2 解析 2. 自定义 el-descriptions 样式2.1 修改背景色、字体颜色2.2 调整字体大小2.3 解析 3. el-card 结合 el-descriptions 作为信息展示3.…...
GaussDB自带诊断工具实战指南
一、引言 GaussDB是一种分布式的关系型数据库。在数据库运维中,快速定位性能瓶颈、诊断故障是保障业务连续性的关键。GaussDB内置了多种诊断工具,结合日志分析、执行计划解析和实时监控功能,帮助开发者与运维人员高效解决问题。本文深入讲解…...
LeetCode 链表章节
简单 21. 合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4]示例 2: 输入:l1 [], l2…...
SSL证书和HTTPS:全面解析它们的功能与重要性
每当我们在互联网上输入个人信息、进行在线交易时,背后是否有一个安全的保障?这时,SSL证书和HTTPS便扮演了至关重要的角色。本文将全面分析SSL证书和HTTPS的含义、功能、重要性以及它们在网络安全中的作用。 一、SSL证书的定义与基本概念 S…...
正交投影与内积空间:机器学习的几何基础
前言 本文隶属于专栏《机器学习数学通关指南》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见《机器学习数学通关指南》 正文 🔍 1. 内积空间的…...
Qt中txt文件输出为PDF格式
main.cpp PdfReportGenerator pdfReportGenerator;// 加载中文字体if (QFontDatabase::addApplicationFont(":/new/prefix1/simsun.ttf") -1) {QMessageBox::warning(nullptr, "警告", "无法加载中文字体");}// 解析日志文件QVector<LogEntr…...
《HelloGitHub》第 107 期
兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 Python、…...
Langchain解锁LLM大语言模型的结构化输出能力(多种实现方案)
在 LangChain解锁LLM大语言模型的结构化输出能力:调用 with_structured_output() 方法 这篇博客中,我们了解了格式化LLM输出内容的必要性以及如何通过调用langchain框架中提供的 with_structured_output() 方法对LLM输出进行格式化(三种可选方…...
AI数据分析:deepseek生成SQL
在当今数据驱动的时代,数据分析已成为企业和个人决策的重要工具。随着人工智能技术的快速发展,AI 驱动的数据分析工具正在改变我们处理和分析数据的方式。本文将着重介绍如何使用 DeepSeek 进行自动补全SQL 查询语句。 我们都知道,SQL 查询语…...
力扣-动态规划-115 不同子序列
思路 dp数组定义:0_i-1的字符串中有0_j-1的字符串有dp[i][j]个递推公式: if(s[i-1] t[j-1]){dp[i][j] dp[i-1][j-1] dp[i-1][j]; }else{dp[i][j] dp[i-1][j]; } 在该元素相同时,有两种可能1:使用该元素,所以0_i-2…...
Qt C++ 开发 动态上下页按钮实现
项目开发,想实现动态的显示按钮,考虑使用QStackedWidget做两个页面去切换。 首先,我们使用Qt ui 画出两个QStackedWidget的两个页面 要实现切换,我们只需要调用stackedWidget->setCurrentIndex(index)就行。 那么如何自动调…...
数据结构第五节:排序
1.常见的排序算法 插入排序:直接插入排序、希尔排序 选择排序:直接选择排序、堆排序 交换排序:冒泡排序、快速排序 归并排序:归并排序 排序的接口实现: // 1. 直接插入排序 void InsertSort(int* a, int n); // 2. 希…...
从文件到块: 提高 Hugging Face 存储效率
Hugging Face 在Git LFS 仓库中存储了超过30 PB 的模型、数据集和 Spaces。由于 Git 在文件级别进行存储和版本控制,任何文件的修改都需要重新上传整个文件。这在 Hub 上会产生高昂的成本,因为平均每个 Parquet 和 CSV 文件大小在 200-300 MB 之间&#…...
Android14 串口控制是能wifi adb实现简介
Android14 串口控制是能wifi adb实现简介 一、前言 文章目录 Android14 串口控制是能wifi adb实现简介一、前言二、Android14 串口控制是能wifi adb实现1、设置prop属性命令开启adb(1)相关prop属性设置(2)在设置界面或者 ifconfi…...
vue3中 组合式~测试深入组件:事件 与 $emit()
一、语法(props) 第一步:在组件模板表达式中,可以直接用$emit()方法触发自定义事件, <!-- MyComponent --> <button click"$emit(someEvent)">Click Me</button> 第二步父组件可以通过 v-on (缩写为 ) 来监听…...
SQL-labs13-16闯关记录
http://127.0.0.1/sqli-labs/less-13/ 基于POST单引号双注入变形 1,依然是一个登录框,POST型SQL注入 2,挂上burpsuite,然后抓取请求,构造请求判断漏洞类型和闭合条件 admin 发生了报错,根据提示闭合方式是(…...
Android MediaCodec解码实战:从H.264文件到ImageView,同步与异步模式代码对比与避坑指南
Android MediaCodec解码实战:同步与异步模式深度解析与性能优化 在移动端视频处理领域,Android MediaCodec作为系统级硬件加速接口,一直是开发者实现高效视频解码的首选方案。但面对同步与异步两种工作模式的选择,许多中高级开发者…...
从Caffeine源码到实战:手把手教你用Checker Framework给Java代码做‘体检’
从Caffeine源码到实战:手把手教你用Checker Framework给Java代码做‘体检’ 在阅读Caffeine这样的高质量开源项目时,细心的开发者常会注意到一些独特的编译注解——比如Nullable、GuardedBy这类标记。这些看似简单的注解背后,其实隐藏着一个强…...
2026年4K投影仪画质横评:明基W系列“色彩科学”解析
一、开篇点题:画质之争,终归是色彩之争2026年的4K投影仪市场,参数竞赛已进入白热化。当分辨率、亮度、对比度等硬指标逐渐趋同,真正拉开产品差距的,是那个决定画面灵魂的核心——色彩。一台投影仪能否精准还原电影导演…...
QQ音乐API逆向工程与数据解析技术架构深度解析
QQ音乐API逆向工程与数据解析技术架构深度解析 【免费下载链接】MCQTSS_QQMusic QQ音乐解析 项目地址: https://gitcode.com/gh_mirrors/mc/MCQTSS_QQMusic QQ音乐作为中国领先的数字音乐平台,其API接口设计与数据加密机制一直是技术社区关注的热点。本项目通…...
2026届学术党必备的十大AI学术方案实测分析
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek AI工具运用越来越广泛,然而随之出现的信息过多无法承受以及决策变得复杂的状况&…...
Qt新手也能搞定的GPU加速图片渲染:用QOpenGLWidget和QImage实现高性能显示
Qt新手也能搞定的GPU加速图片渲染:用QOpenGLWidget和QImage实现高性能显示 在Qt应用开发中,处理高分辨率图片或序列帧(如医学影像、地图切片)时,传统的QLabel显示方式常会遇到性能瓶颈。当图片尺寸超过1080P或需要快速…...
【路径规划】基于A星算法实现图结构中的多机器人路径规划附matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎完整代码获取 定制创新 论文复现点击:Matlab科研工作室👇 关注我领取海量m…...
双足机器人推进系统建模与系统辨识技术解析
1. 双足机器人推进系统建模与验证概述在机器人动力学控制领域,系统辨识是建立精确数学模型的关键技术。本文以美国东北大学开发的Harpy v2双足机器人为研究对象,重点探讨其集成推进系统的推力与扭矩特性建模方法。这款机器人高约1.2米,重15公…...
The import xxx.xxx.xxx is never used
The import xxx.xxx.xxx is never used List is a raw type. References to generic type List<E> should be parameterized Dead code The value of the local variable d is not used代码洁癖啊,为啥这些这么多黄色警告都不处理呢。 没有用的代码࿰…...
跨国设计大文件同步延迟高?企业网盘选型必须知道的 3 个标准(含 5 款网盘实测)
对于跨国运作的设计与研发团队而言,最折磨人的往往不是时差,而是等待一个 2GB 的大型工程文件(PSD、CAD 或项目源文件)缓慢同步的“沙漏时长”。国外团队昨晚做好的模型,国内团队早上还要等一个小时才能下载完毕&#…...
