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

使用组合框QComboBox模拟购物车

1.组合框: QComboBox

组合框:QComboBox

用于存放一些列表项

实例化

//实例化QComboBox* comboBox = new QComboBox(this);

1.1 代码实现

1.1.1 组合框的基本函数

QComboBox

dialog.cpp

#include "dialog.h"
#include "ui_dialog.h"Dialog::Dialog(QWidget *parent): QDialog(parent), ui(new Ui::Dialog)
{ui->setupUi(this);//添加列表项this->comboBox->addItem("苹果");this->comboBox->addItem("香蕉");this->comboBox->addItem("西瓜");//添加图片this->comboBox->addItem(QIcon(":/img/photo.jpg"),"葡萄");//一次添加多个列表项QStringList list;list<<"星期一"<<"星期二"<<"星期三";this->comboBox->addItems(list);//返回组合框里有多少列表项qDebug()<<"组合框里列表项数目"<<this->comboBox->count()<<endl;//返回当前列表项的下标qDebug()<<"返回当前列表项的下标"<<this->comboBox->currentIndex()<<endl;//返回当前列表项qDebug()<<"返回当前列表项"<<this->comboBox->currentText()<<endl;//在组合框中查询是否有指定的列表项,如果有就返回下标,没有就返回-1int index = this->comboBox->findText("星期二");qDebug()<<"星期二对应的下标:"<<index<<endl;//通过下标找到列表项QString text = this->comboBox->itemText(index);qDebug()<<"下标为"<<index<<"的列表项是"<<text<<endl;//通过下标找到图片QIcon icon = this->comboBox->itemIcon(2);//在指定位置插入列表项QStringList list2;list2<<"昨天"<<"今天"<<"明天";this->comboBox->insertItems(1,list2);//移除指定的列表项this->comboBox->removeItem(1);//这里我移除了 昨天//将列表项更新为新的列表项this->comboBox->setItemText(index,"hello");}Dialog::~Dialog()
{delete ui;
}

1.1.2 练习购物车

用组合框模拟账户的存储与取出

使用组合框模拟购物车

(1)用户可以添加物品到购物车中

(2)用户可以移除购物车中指定的物品

(3)用户可以清空并结算购物车中商品总价

(4)用户一个商品用户可以购买多个

效果如下

QConboBox_gouwuche

dialog.h

#ifndef DIALOG_H
#define DIALOG_H#include <QDialog>
#include <Qdebug>
#include <QComboBox>QT_BEGIN_NAMESPACE
namespace Ui { class Dialog; }
QT_END_NAMESPACEclass Dialog : public QDialog
{Q_OBJECTpublic:Dialog(QWidget *parent = nullptr);~Dialog();private slots:void on_xigau_clicked();void on_car_clicked();void on_flower_clicked();void on_del_clicked();void on_jiesuan_clicked();private:Ui::Dialog *ui;//实例化组合框QComboBox* comboBox = new QComboBox(this);};
#endif // DIALOG_H

dialog.cpp

#include "dialog.h"
#include "ui_dialog.h"//用组合框模拟账户的存储与取出
//    使用组合框模拟购物车
//    (1)用户可以添加物品到购物车中
//    (2)用户可以移除购物车中指定的物品
//    (3)用户可以清空并结算购物车中商品总价
//    (4)用户一个商品用户可以购买多个Dialog::Dialog(QWidget *parent): QDialog(parent), ui(new Ui::Dialog)
{ui->setupUi(this);this->comboBox->move(260,150);this->comboBox->resize(100,40);}Dialog::~Dialog()
{delete ui;
}void Dialog::on_xigau_clicked()//西瓜
{QString xg = ui->xigau->text();QStringList watermelon = xg.split(" ");//以空格分割字符串this->comboBox->addItem(watermelon[0]);//将物品给组合框选项}void Dialog::on_car_clicked()//汽车
{QString qiche = ui->car->text();QStringList che = qiche.split(" ");//以空格分割字符串this->comboBox->addItem(che[0]);}void Dialog::on_flower_clicked()//鲜花
{QString xianhua = ui->flower->text();QStringList hua = xianhua.split(" ");//以空格分割字符串this->comboBox->addItem(hua[0]);}void Dialog::on_del_clicked()//删除列表项
{int index = this->comboBox->currentIndex();this->comboBox->removeItem(index);
}void Dialog::on_jiesuan_clicked()//结算
{int sum = 0;int num = this->comboBox->count();//获取标签中有多少项for(int i=0;i<num;i++){//循环遍历出列表项QString cur = this->comboBox->itemText(i);//取出列表项if(cur=="西瓜"){sum+=12;}else if(cur=="汽车"){sum+=25;}else if(cur=="鲜花"){sum+=9;}}ui->label->setText(QString::number(sum));//QString::number(sum)转为字符串comboBox->clear();}

1.2 信号

1.2.1 信号函数

 void activated(int index) //当列表项变化时触发该信号void activated(const QString &text)void currentIndexChanged(int index) //当前列表项下标变化时触发该信号void currentIndexChanged(const QString &text)void currentTextChanged(const QString &text)//当前列表项变化时触发该信号void editTextChanged(const QString &text)void highlighted(int index) //列表项高亮时触发该信号void highlighted(const QString &text)
1.2.2 举例

QComboBox

绑定

dialog.cpp

//绑定变化列表项信号,即当列表项被选中触发connect(this->comboBox,SIGNAL(activated(QString)),this,SLOT(rece1_Text(QString)));//绑定高亮信号,即鼠标放在哪高亮触发connect(this->comboBox,SIGNAL(highlighted(int)),this,SLOT(rece2_Text_Index(int)));

定义

dialog.h

public slots://槽void rece1_Text(const QString& text);//绑定变化列表项信号,即当列表项被选中触发void rece2_Text_Index(int dex);//绑定高亮信号,即鼠标放在哪高亮触发

实现

dialog.cpp

void Dialog::rece1_Text(const QString &text){qDebug()<<"列表项"<<text<<endl;
}void Dialog::rece2_Text_Index(int dex){qDebug()<<"下表为"<<dex<<endl;
}

1.3 UI实现

方法解释

    editable:设置组框当前列表项是否可编辑currentText:获取组合框中的当前显示的列表项currrenIdex:获取当前列表项的下标maxVisibleItems:列表项可移动的最大数目maxCount:设置组合框中最多能容纳的列表项的数目insertPolicy:设置插入列表项的策略sizeAdjustPolicy:设置组合框中列表项适应组合框minimumContentsLength:最小的列表项的长度iconsize:设置图片的大小placeholderText:背景提示的文本frame:边框modelColumn:列表项

相关文章:

使用组合框QComboBox模拟购物车

1.组合框: QComboBox 组合框&#xff1a;QComboBox 用于存放一些列表项 实例化 //实例化QComboBox* comboBox new QComboBox(this);1.1 代码实现 1.1.1 组合框的基本函数 QComboBox dialog.cpp #include "dialog.h" #include "ui_dialog.h"Dialog::Dialog…...

云服务器十大服务商——云服务器哪家好用

云服务器哪家便宜&#xff1f;2024最新整理你要的都在这&#xff01;头部云厂商阿里云、腾讯云、华为云、京东云、UCloud等都在降价&#xff0c;阿腾云atengyun.com分享2024年云服务器租用价格给你惊喜&#xff01; 便宜云服务器阿里云腾讯云华为云 2024年便宜云服务器汇总&…...

SQL DML

# DML—添加数据 1.给指定字段添加数据 INSERT INTO表名(字段名1,字段名2,...)VALUES(值1&#xff0c;值2...); 2.给全部字段添加数据 INSERT INTO表名VALUES(值1&#xff0c;值2,...); 3.批量添加数据 INSERT INTO表名(字段名1,字段名2,...)VALUES(值1&#xff0c;值2..…...

MySQL--基础篇

这里写目录标题 总览MySQl各个阶段基础篇总览 MySQL概述数据库相关概念查看本机MySQL版本号启停mysql打开windows服务管理windows命令行启停 连接mysql客户端mysql运行逻辑数据模型关系型数据库 总结 SQL总览SQL通用语法SQL语句分类DDL数据库操作表操作查询表创建表结构数据类型…...

[VUE]5-TypeScript

目录 1 TypeScript 介绍2、安装3、快速上手4、TypeScript 常用类型4.1 类型标注的位置4.2 字符串、数字、布尔类型4.3 字面量类型4.4 ⭐interface 类型4.5 class 类型 ​&#x1f343;作者介绍&#xff1a;双非本科大三网络工程专业在读&#xff0c;阿里云专家博主&#xff0c;…...

Linux指令(一)

今天来学习Linux的一些基本的指令。 今天要学习的指令有ls&#xff0c;pwd&#xff0c;mkdir&#xff0c;cd&#xff0c;touch&#xff0c;rm等。 指令的格式 在Linux中&#xff0c;指令的语法通常遵循以下格式&#xff1a; command [options] [arguments] command 是要执行…...

C语言中的回文素数

任意的整数&#xff0c;当从左向右读与从右向左读是相同的&#xff0c;且为素数时&#xff0c;称为回文素数。求 1000 以内的所有回文素数。 算法思想 实例的重点是判断一个数是否是回文素数。要输出 1000 以内的所有回文素数&#xff0c;首先应判断这个数是否是素数&#xf…...

前端生成pdf之html2canvas+jsPDF,以及解决图片不显示bug

前端如何生成pdf 开发背景&#xff1a; 需要给页面中相应的内容生成pdf&#xff0c;查找文档后发现要用到两个插件。html2canvas 以及 jsPDF html2canvas 给dom结构转化为canvas&#xff0c;然后生成各种类型图片jsPDF 把canvas 生成的图片url 转化为pdf // 插入图片 pdf.addI…...

PHP常用符号和函数

// 单行注解 /* */ 多行注解 引号的使用 ’ ’ 单引号,没有任何意义,不经任何处理直接拿过来; ” “双引号,php动态处理然后输出,一般用于变量. 变量形态: 一种是True 即 真的; 另一种是False 即假的 常见变量形态: string 字串(数字\汉字\等等) integer 整数(1、2、…...

C#,入门教程(12)——数组及数组使用的基础知识

上一篇&#xff1a; C#&#xff0c;入门教程(11)——枚举&#xff08;Enum&#xff09;的基础知识和高级应用https://blog.csdn.net/beijinghorn/article/details/123917587 数组是一种数据集合&#xff0c;是一组完全相同的、按顺序存放的数据。 需要记住数组的几个特征&…...

C语言中的副作用、序列点以及复杂表达式的求值顺序

C语言中复杂表达式的求值顺序 num (5 2) * (9 * 6);如果我问你&#xff1a;上面的c程序在执行的时候到底是先算&#xff08;5 2&#xff09;还是&#xff08;9 * 6&#xff09;&#xff1f;你会怎么回答&#xff1f; 无非就两种&#xff1a;先算&#xff08;5 2&#xff…...

C++学习笔记——队列模拟

目录 一、模拟队列 二、模拟队列的知识点 三、队列 3.1入队操作 3.2出队操作 3.3访问队首元素 3.4访问队尾元素 3.5判断队列是否为空 3.6获取队列的大小 四、实现队列的基本功能 一、模拟队列 当涉及到数据存储和处理时&#xff0c;队列是一种常见的数据结构&#x…...

jvm垃圾回收相关的算法

什么是垃圾 JVM主要通过以下几种方式来判断对象是否需要回收&#xff1a; 引用计数法&#xff1a;JVM通过引用计数器来判断对象的引用数量&#xff0c;当引用数量为0时&#xff0c;表示对象可以被回收。 可达性分析算法&#xff1a;JVM通过根对象&#xff08;如栈中的引用、静…...

每日coding

2085、统计出现过一次的公共字符串 给你两个字符串数组 words1 和 words2 &#xff0c;请你返回在两个字符串数组中 都恰好出现一次 的字符串的数目。 示例 1&#xff1a; 输入&#xff1a;words1 ["leetcode","is","amazing","as"…...

软件工程_复习

软件工程 软件危机(1968 60年代) 产生软件危机的原因: 一方面与软件本身的特点有关,另一方面也和软件开发和维护的方法不正确有关。 与软件本身特点有关: 1.软件不同于硬件,软件是计算机系统中的逻辑部件,缺乏“可见性”,管理和控制软件开发过程相当困难 2.软件在运行过…...

07GoF之三种工厂模式

GoF&#xff08;Gang of Four&#xff09;:四人组,《Design Patterns: Elements of Reusable Object-Oriented Software》&#xff08;《设计模式》)的作者,设计了23种设计模式.但时代发展,还有其它的设计模式&#xff0c;比如&#xff1a;JavaEE的设计模式&#xff08;DAO模式…...

JAVA面试部分——后端-线程前篇

3.1 线程和进程 在计算机科学中&#xff0c;进程和线程是操作系统管理资源的两种不同方式。 进程&#xff08;Process&#xff09;&#xff1a;是程序在计算机上的一次执行活动。每个进程都有自己的内存空间&#xff0c;包括代码、数据和系统资源。一个进程可以包含多个线程。…...

【小沐学C++】C++ 实现鼠标键盘钩子HOOK

文章目录 1、简介2、相关函数2.1 SetWindowsHookEx2.2 UnhookWindowsHookEx2.3 CallNextHookEx 3、相关结构体3.1 KBDLLHOOKSTRUCT3.2 MSLLHOOKSTRUCT 4、挂钩过程5、代码测试5.1 代码1 结语 1、简介 https://learn.microsoft.com/zh-cn/windows/win32/winmsg/about-hooks 挂…...

【pycharm】常见问题与解决

记录一些Pycharm中经常遇到的问题 1. “Open file or Project” always in loading state (hang) a) 老版本 (2021年左右) since build 211.6693.14, it is possible to use a native file chooser on Windows. The feature is experimental; to enable it, add the followi…...

flask web学习之表单(一)

文章目录 一、使用Flask-WTF处理表单1.1 安装Flask-WTF库1.2 定义WTForms表单类常用的WTForm字段实例化字段类常用参数常用的WTForm验证器 1.3 输出HTML代码使用render_kw属性在调用字段时传入 1.4 在模板中渲染表单 在web程序中&#xff0c;表单是用户交互最常见的方式之一。用…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...