QT第3天

 

如上图界面,需求如下:

1、根据名字添加水果,并设置好单价

2、切换文件查看模式

3、点击任意水果可以显示单价

4、重量改变时,总价自动显示

//widget.h
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QListWidgetItem>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();
public slots:void pbtnChangeModeSlotFunc();void listWidgetItemSlotFunc(QListWidgetItem *);void spinWeightChangeSlotFunc(double);void pbtnAddClickedSlotFunc();
private:Ui::Widget *ui;
};
#endif // WIDGET_H
//widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include <QListWidgetItem>
#include <QDebug>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//设置水果对象QListWidgetItem *p1=new QListWidgetItem;p1->setText("奇异果");QIcon Icon1(":/icon/icon/奇异果.png");p1->setIcon(Icon1);p1->setData(Qt::UserRole,10.3);//设置单价ui->listWidget->addItem(p1);QListWidgetItem *p2=new QListWidgetItem;p2->setText("山竹");QIcon Icon2(":/icon/icon/山竹.png");p2->setIcon(Icon2);p2->setData(Qt::UserRole,15.6);//设置单价ui->listWidget->addItem(p2);QListWidgetItem *p3=new QListWidgetItem;p3->setText("杨桃");QIcon Icon3(":/icon/icon/杨桃.png");p3->setIcon(Icon3);p3->setData(Qt::UserRole,10.3);//设置单价ui->listWidget->addItem(p3);QListWidgetItem *p4=new QListWidgetItem;p4->setText("柠檬");QIcon Icon4(":/icon/icon/柠檬.png");p4->setIcon(Icon4);p4->setData(Qt::UserRole,9.5);//设置单价ui->listWidget->addItem(p4);QListWidgetItem *p5=new QListWidgetItem;p5->setText("桃子");QIcon Icon5(":/icon/icon/桃子.png");p5->setIcon(Icon5);p5->setData(Qt::UserRole,5.78);//设置单价ui->listWidget->addItem(p5);QListWidgetItem *p6=new QListWidgetItem;p6->setText("梨子");QIcon Icon6(":/icon/icon/梨子.png");p6->setIcon(Icon6);p6->setData(Qt::UserRole,4.91);//设置单价ui->listWidget->addItem(p6);QListWidgetItem *p7=new QListWidgetItem;p7->setText("椰子");QIcon Icon7(":/icon/icon/椰子.png");p7->setIcon(Icon7);p7->setData(Qt::UserRole,10.3);//设置单价ui->listWidget->addItem(p7);QListWidgetItem *p8=new QListWidgetItem;p8->setText("火龙果");QIcon Icon8(":/icon/icon/火龙果.png");p8->setIcon(Icon8);p8->setData(Qt::UserRole,9.99);//设置单价ui->listWidget->addItem(p8);QListWidgetItem *p9=new QListWidgetItem;p9->setText("榴莲");QIcon Icon9(":/icon/icon/榴莲.png");p9->setIcon(Icon9);p9->setData(Qt::UserRole,21.36);//设置单价ui->listWidget->addItem(p9);ui->spinWeight->setMinimum(0); //设置重量最小值connect(ui->pbtnChangeMode,SIGNAL(clicked()),this,SLOT(pbtnChangeModeSlotFunc()));connect(ui->listWidget,SIGNAL(itemClicked(QListWidgetItem *)),this,SLOT(listWidgetItemSlotFunc(QListWidgetItem *)));connect(ui->spinWeight,SIGNAL(valueChanged(double)),this,SLOT(spinWeightChangeSlotFunc(double)));connect(ui->pbtnAdd,SIGNAL(clicked()),this,SLOT(pbtnAddClickedSlotFunc()));
}Widget::~Widget()
{delete ui;
}//切换模式
void Widget::pbtnChangeModeSlotFunc()
{static int count=0;count++;(count%=2)==1?ui->listWidget->setViewMode(QListView::IconMode):ui->listWidget->setViewMode(QListView::ListMode);
}//点击选项
void Widget::listWidgetItemSlotFunc(QListWidgetItem *)
{int index=ui->listWidget->currentRow(); //获取点击的indexQListWidgetItem* p=ui->listWidget->item(index); //获取点击的对象double price=p->data(Qt::UserRole).toDouble();  //获取对象的自定义属性ui->spinPrice ->setValue(price);}//重量改变
void Widget::spinWeightChangeSlotFunc(double)
{double price=ui->spinPrice->value();double weight=ui->spinWeight->value();ui->spinTotal->setValue(price*weight);
}//点击添加
void Widget::pbtnAddClickedSlotFunc()
{QString name=ui->lineEditName->text();double price=ui->spinPriceInit->value();QListWidgetItem *p=new QListWidgetItem;p->setText(name);QString IconName=QString(":/icon/icon/%1.png").arg(name);QIcon Icon3(IconName);p->setIcon(Icon3);p->setData(Qt::UserRole,price);//设置单价ui->listWidget->addItem(p);ui->lineEditName->setText("");ui->spinPriceInit->setValue(0);
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/622182.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RH850P1X芯片学习笔记-Flash Memory

文章目录 FeaturesClock Supply Block DiagramFlash SizeMemory ConfigurationRegistersRegister Base AddressList of RegistersRegister Reset Condition 与Flash Memory相关的操作模式Functional OverviewOption BytesOPBT0 — Option Byte 0OPBT1 — Option Byte 1OPBT2 —…

【CSS】保持元素宽高比

保持元素的宽高比&#xff0c;在视频或图片展示类页面是一个重要功能。 本文介绍其常规的实现方法。 实现效果 当浏览器视口发生变化时&#xff0c;元素的尺寸随之变化&#xff0c;且宽高比不变。 代码实现 我们用最简单的元素结构来演示&#xff0c;实现宽高比为4&#xf…

鸿蒙Harmony是如何影响Android工程师的呢?

其实鸿蒙在2019就已经出来了&#xff0c;那时候还是套壳Android的。从2023年9月的发布会上&#xff0c;华为宣布鸿蒙原生应用全面启动、HarmonyOS NEXT亮相以后&#xff0c;围绕着纯血鸿蒙展开的鸿蒙应用生态发展迅猛&#xff0c;目前已经有包括社交、金融、影音、游戏、资讯、…

docker-compose和docker compose的区别

在docker实际使用中&#xff0c;经常会搭配Compose&#xff0c;用来定义和运行多个 Docker 容器。使用时会发现&#xff0c;有时候的指令是docker-compose&#xff0c;有时候是docker compose&#xff0c;下面给出解释。 docker官方文档&#xff1a;https://docs.docker.com/c…

ArrayBlockingQueue的使用

异步日志打印模型概述 在高并发、高流量并且响应时间要求比较小的系统中同步打印日志已经满足不了需求了&#xff0c;这是因为打印日志本身是需要写磁盘的&#xff0c;写磁盘的操作会暂时阻塞调用打印日志的业务线程&#xff0c;这会造成调用线程的rt增加。 如图所示为同步日…

WorkPlus领先企业即时通信软件,提升团队沟通效率的利器

在企业工作中&#xff0c;高效沟通是推动团队协作和工作效率的关键。而企业即时通信软件成为了实现高效沟通的利器。作为一款领先的企业即时通信软件&#xff0c;WorkPlus以其卓越的性能和独特的功能&#xff0c;提升团队沟通效率&#xff0c;助力企业实现高效协作。 为什么选择…

豆包ai介绍

豆包是字节跳动基于云雀模型开发的AI工具&#xff0c;具有强大的语言处理能力和广泛的应用场景&#xff0c;无论是在学习、工作、生活中&#xff0c;都能派上用场。 豆包可以帮助打工人和创作者提升效率&#xff0c;完成各种工作任务&#xff0c;又能扮演各类AI角色进行高情商…

[学习笔记]刘知远团队大模型技术与交叉应用L1-NLPBig Model Basics

本节主要介绍NLP和大模型的基础知识。提及了词表示如何从one-hot发展到Word Embedding。语言模型如何从N-gram发展成预训练语言模型PLMs。然后介绍了大模型在NLP任务上的表现&#xff0c;以及它遵循的基本范式。最后介绍了本课程需要用到的编程环境和GPU服务器。 一篇NLP方向的…

从零开始做题:逆向wdb_2018_2nd_easyfmt

1.题目信息 2.解题分析 格式化字符串漏洞 如何确定偏移 Do you know repeater? 输入AAAA.%p.%p.%p.%p.%p.%p.%p.%p.%p.%p.%p.%p. 输出AAAA.0xffffd658.0x64.0xf7ffdc08.0xf7ffcd00.0xffffd77c.0x41414141.0x2e70252e.0x252e7025.0x70252e70.0x2e70252e.0x252e7025.0x70252…

City Terrace Pack

“城市与露台资源包” 的主要特点:• 属于系列的一部分。• 极为逼真和现代化的城市。• 高度优化的低多边形和逼真资源。• 可用于 Oculus、GearVR、Vive、Daydream。• 可用于低端和高端移动设备。• 灵感来自于现代建筑和设计。• 36 种不同的摩天大楼和建筑物。• 其中每个…

【2023 我的编程之旅】

前言 转眼 2024 年都过去 14 天了。回顾 2023 有太多技术上的思考以及人生的感悟&#xff0c;接下来趁着 CSDN 官方活动&#xff0c;顺便记录下来。 技术的价值 与现在的年轻人一心只想搞钱不同&#xff0c;刚毕业的时候&#xff0c;我的梦想是进入一家有实力的科技企业&…

如何创建并格式化硬盘分区?

一般将新硬盘连接到计算机后&#xff0c;需先创建并格式化硬盘分区。否则在磁盘管理中会显示为“未分配空间”&#xff0c;并在文件资源管理器中不可见。那我们如何在硬盘上创建新分区&#xff0c;并对新分区进行格式化&#xff1f; 方法1. 通过命令提示符 首先&#xff0c;我…

两周掌握Vue3(三):全局组件、局部组件、Props

文章目录 一、全局组件1.创建全局组件2.在main.js中注册全局组件3.使用全局组件 二、局部组件1.创建局部组件2.在另一个组件中注册、使用局部组件 三、Props1.定义一个子组件2.定义一个父组件3.效果 代码仓库&#xff1a;跳转 本博客对应分支&#xff1a;03 一、全局组件 Vue…

计算机缺失mfu140u.dll的5种解决方法,亲测有效

在计算机系统运行过程中&#xff0c;mfu140u.dll文件的丢失是一个较为常见的问题场景。这个动态链接库文件(mfu140u.dll)对于系统的正常运行具有关键作用&#xff0c;它的缺失可能导致相关应用程序无法启动或执行功能异常。具体来说&#xff0c;mfu140u.dll丢失的场景可能出现在…

Arm LDM和STM的寻址方式

A32指令集中包含多数据传输指令LDM和STM&#xff0c;也就是单条指令可以传输多个寄存器的值与内存交互&#xff0c;这对于数据块传输以及寄存器的压入栈很有帮助。LDM和STM指令可分别用于实现堆栈的pop和push操作。对于堆栈操作&#xff0c;基寄存器通常是堆栈指针(SP)。 LDM和…

LeetCode讲解篇之2280. 表示一个折线图的最少线段数

文章目录 题目描述题解思路题解代码 题目描述 题解思路 折线图中如果连续的线段共线&#xff0c;那么我们可以可以将其合并成一条线段 首先将坐标点按照横坐标升序排序 然后遍历数组 我们可以通过计算前一个线段的斜率和当前线段的斜率来判断是否共线 如果二者相等&#x…

Python之字符串中常用的方法

1. 去掉空格和特殊符号 name " abcdefgeyameng " name1 name.strip() # 并不会在原来的字符串上操作,返回一个去除了两边空白的字符串 print(name1, len(name1), name, len(name)) # abcdefgeyameng 14 abcdefgeyameng 17 # 去掉左边的空格和换行符 name2 n…

测试SpringBoot的时候报错mapper未装载的解决方案:

1.报错信息和截图&#xff1a; org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name com.tang.testspringboot.TestSpringBootApplicationTests: Unsatisfied dependency expressed through field mapper: No qualifying bean o…

Python3.10安装教程

Python3.10安装 Python的安装按照下面几步进行即可&#xff0c;比较简单。 下载Python安装文件&#xff0c;打开Python的下载页面&#xff0c;我这里选择安装的版本是3.10.11&#xff0c;根据自己电脑版本选择对应安装包 安装包下载完毕后&#xff0c;按照步骤开始安装。选择…

620基于51单片机的密码锁设计[Proteus仿真]

620基于51单片机的密码锁设计[proteus仿真] 密码锁设计这个题目算是课 程设计和毕业设计中常见的题目了&#xff0c;本期是一个基于51单片机的密码锁设计 需要的源文件和程序的小伙伴可以关注公众号【阿目分享嵌入式】&#xff0c;赞赏任意文章 2&#xffe5;&#xff0c;私信…