一、RecBox中btUp和btDown按钮clicked处理

选中左右键(btUp和btDown按钮)然后右击转到槽->click()

void RecBox::on_btUp_clicked()
{}void RecBox::on_btDown_clicked()
{}

二、imageList中图片分组

// recbox.h 中新增
int currentIndex; // 标记当先显⽰第⼏组图⽚和推荐信息
int count; // 标记imageList中元素按照col分组总数
// recbox.cpp 中新增
void RecBox::initRecBoxUi(QJsonArray data, int row)
{// ...imageList = data;//从这里开始往下面添加// 默认显⽰第0组currentIndex = 0;// 计算总共有⼏组图⽚,ceil表⽰向上取整count = ceil(imageList.size()/col);// 在RecBox控件添加RecBoxItem
createRecBoxItem();
}

接下来写左移和右移的函数,轮番播放

void RecBox::on_btUp_clicked()
{currentIndex--;if(currentIndex<0){currentIndex=count-1;}createRecBoxItem();
}void RecBox::on_btDown_clicked()
{currentIndex++;if(currentIndex>=count){currentIndex=0;}createRecBoxItem();
}

现在有个问题是当切换页面时进来的元素和原来的元素会堆积在一起,没有删除原先recboxitem的元素

三、除去重复元素

void RecBox::createRecBoxItem()
{//添加元素之前先抹去之前的元素布局QList<RecBoxItem*> RecUpList=ui->recListUp->findChildren<RecBoxItem*>();for(auto e:RecUpList){ui->recListUpHLayout->removeWidget(e);delete e;}QList<RecBoxItem*> RecDownList=ui->recListUp->findChildren<RecBoxItem*>();for(auto e:RecDownList){ui->recListDownHLayout->removeWidget(e);delete e;}
//创建元素代码………………
}

四、按照分组计算imageList中元素偏移

 //接上面的代码,在createrecboxitem里// 创建RecBoxItem对象,往RecBox中添加int index=0;for(int i = currentIndex*col; i < col+currentIndex*col; ++i){RecBoxItem* item = new RecBoxItem();// 设置⾳乐图⽚与对应⽂本QJsonObject obj = imageList[i].toObject();item->setText(obj.value("text").toString());item->setImage(obj.value("path").toString());if(index >= col/2 && row == 2){ui->recListDownHLayout->addWidget(item);}else{ui->recListUpHLayout->addWidget(item);}index++;

int i = currentIndex*col 这里的初始值应该是每组偏移量的值,currentIndex为当前界面位置,col是每组的item数目,这时候的i已经不是表示的从0开始的item数目了,因此需要单独设立一个index变量用来计数和判断它和col/2之前的大小。

五、自定义CommonPage

新增加⼀个设计界面,objectName修改为CommonPage,geometry的宽⾼修改为800*500。
① 拖拽⼀个QLabel、两个Widget和⼀个List View控件到CommonPage中,objectName从上往下依
次修改为pageTittle、musicPlayBox、listLabelBox、pageMusicList,然后选中CommonPage点
击垂直布局,将CommonPage的margin和Spacing修改为0。
pageTittle的minimumSize和maximumSize的⾼度修改为30。
musicPlayBox的minimumSize和maximumSize的⾼度修改为150。
listLabelBox的minimumSize和maximumSize的⾼度修改为40。
② 将pageTittle的文本内容修改为"本地音乐"
③ musicPlayBox中
拖拽⼀个QLabel,objectName修改为musicImageLabel,minimumSize和maximumSize的宽度
修改为150
拖拽⼀个Widget,objectName修改为playAll,minimumSize和maximumSize的宽度修改为120,
在其内部拖拽 ⼀个PushButton和Vertical Space(即垂直弹簧),将按钮的objectName修改为
playAllBtn,minimumSize和 maximumSize的宽和高修改为100*30,⽂本内容修改为"播放全
部",然后选中playAll点击垂直布局。
拖拽⼀个Horizontal Spacer到CommonPage中,放在playAll之后。
然后选中musicPlayBox,点击水平布局,将margin和spacing设置为0.
④ listLabelBox中
拖拽三个QLabel,内容依次修改为:歌曲名称、歌手名称、专辑名称,objectName从左往右依次
修改为: musicNameLabel、musicSingerLabel、musicAlbumLabel
然后选中musicPlayBox,点击⽔平布局,将margin和spacing设置为0.
⑤ 选中List View,右键单击弹出菜单中选择"变形为",选择QListWidget

选中QQMusic页面,将stackedWidget中我喜欢、本地下载、最近播放对应的页面提升为
CommonPage,页面就处理完成。

按钮格式:

#playAllBtn
{background-color:#E3E3E3;border-radius:10px;
}
#playAllBtn:hover
{background-color:#1ECD97;
}

目前界面情况:

屏幕录制 2025-07-31 204416

 

关注三连我尽快更新哦~~~ 

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

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

相关文章

DeepSeek SEO关键词优化提升流量增长

内容概要DeepSeek SEO关键词优化致力于通过科学的方法&#xff0c;显著提升网站在搜索引擎中的可见度与自然流量。其核心在于深入理解并精准匹配用户的真实搜索意图&#xff0c;而非仅仅堆砌词汇。具体来说&#xff0c;该策略运用深度意图导向策略&#xff0c;确保内容与用户需…

# Ubuntu 系统设置 USB PnP 音频设备为默认设备的完整教程

Ubuntu 系统设置 USB PnP 音频设备为默认设备的完整教程 在使用 Ubuntu 系统时&#xff0c;尤其是在嵌入式设备如 NVIDIA Jetson 系列上&#xff0c;我们经常需要将 USB PnP 音频设备设置为默认设备。本文将详细介绍如何通过命令行配置&#xff0c;使 USB PnP 音频设备在系统重…

Hadoop JMX 配置的完整文档

一、JMX 基础概念与 Hadoop 支持 1、JMX 作用。 Java Management Extensions&#xff08;JMX&#xff09;提供标准 API 监控 JVM 应用运行时状态&#xff08;内存、线程、GC&#xff09;及 Hadoop 组件指标&#xff08;HDFS 容量、RPC 性能、节点状态&#xff09; 2、Hadoop 组…

arm架构系统打包qt程序--麒麟操作系统为例

检查系统架构 uname -a如果显示是aarch644或arm64&#xff0c;说明你使用的是ARM架构&#xff0c;&#xff0c;需要下载ARM版本。 下载对应架构的linuxdeployqt 编写脚本 vim deploy.sh#!/bin/bash APP_NAME"sunny450_silc"# 确保deploy目录存在 mkdir -p deploy# 复…

Kong API Gateway深度解析:插件系统与微服务架构的技术基石

在微服务&#xff08;microservices&#xff09;架构主导的今天&#xff0c;API网关&#xff08;API Gateway&#xff09;作为服务入口的“交通枢纽”&#xff0c;承担着流量调度、安全防护、可观测性&#xff08;observability&#xff09;等核心职责。Kong作为开源API网关领域…

Linux应用开发基础知识——Makefile初级教程(九)

目录 一、Makefile是啥&#xff1f; 1.1、了解几种文件&#xff08;.o 文件和.c文件 &#xff09; 1.2、关于Makefile的写法 1.3、简单使用Makefile基本指令 1.4、引入伪目标 1.5、Makefile的优点 1.6、Makefile的使用 二、Makefile创建和使用变量 2.1、创建变量的目的…

面试问题收集——卷积神经网络

博主会经常分享自己在人工智能阶段的学习笔记&#xff0c;欢迎大家访问我滴个人博客&#xff01;&#xff08;养成系Blog&#xff01;&#xff09; 小牛壮士滴Blog~ - 低头赶路 敬事如仪https://kukudelin.top/ 01-卷积基础知识 问&#xff1a;简述卷积基本操作&#xff0c;…

Kubernetes 全面解析:从基础设施变革到核心架构详解

引言在容器化技术席卷全球的今天&#xff0c;Kubernetes&#xff08;简称 K8s&#xff09;已成为容器编排领域的事实标准。无论是互联网企业还是传统行业&#xff0c;都在通过 Kubernetes 实现应用的高效部署、弹性扩展和自动化运维。但对于初学者而言&#xff0c;Kubernetes 的…

哈希相关的模拟实现

哈希相关的模拟实现哈希表的模拟实现闭散列除留取余法查找、插入和删除闭散列参考程序开散列除留取余法&#xff08;数组链表&#xff09;迭代器查找和删除插入开散列参考程序unordered_map和unordered_set的模拟实现unordered_mapunordered_set建议先看 哈希的概念及其应用-CS…

Vue3+Vite项目如何简单使用tsx

安装必要的依赖npm install vitejs/plugin-vue-jsx -D在 vite.config.ts 中添加以下内容import vueJsx from vitejs/plugin-vue-jsx export default {plugins: [vueJsx()] }在Vue页面使用<script lang"ts"> import { defineComponent } from vue export defaul…

05百融云策略引擎项目交付-laravel实战完整交付定义常量分文件配置-独立建立lib类处理-成功导出pdf-优雅草卓伊凡

05百融云策略引擎项目交付-laravel实战完整交付定义常量分文件配置-独立建立lib类处理-成功导出pdf-优雅草卓伊凡引言此前只是把关于如何把查询内容导出pdf库的代码实现了&#xff0c;但是我们并没有完成整个项目&#xff0c;这最后一个步骤就是安装composer再安装tcpdf库&…

模型训练速度慢排查

一、nvidia-smi 查看 GPU 的利用率与显存。若 GPU 利用率低或波动&#xff0c;说明 CPU 处理数据的速度跟不上 GPU 计算的速度&#xff0c;需要检查数据传输并调整 num_workers&#xff1b;若 GPU 显存充足&#xff0c;可以逐步增加 batch_size_per_card 直至显存占满&#xff…

STM32学习记录--Day4

今天了解了一下SPI总线&#xff1a;1.SPI内部结构​​&#x1f50c; SPI 四大核心引脚功能详解​​1. ​​MOSI (Master Output Slave Input)​​​​功能​​&#xff1a;​​主机输出数据线​​​​工作流程​​&#xff1a;主机内部发送数据寄存器 (TxDR) 的数据 → 移位寄存…

【网络安全】等级保护2.0解决方案

等保2.0&#xff08;网络安全等级保护2.0&#xff09;是我国网络安全领域的基础性制度&#xff0c;在1.0版本基础上扩展了云计算、大数据、物联网等新兴领域&#xff0c;形成覆盖全场景的安全防护框架。其核心是按信息系统重要程度划分等级&#xff08;1-5级&#xff09;&#…

TypeScript 基础介绍(二)

引言&#xff1a;从基础到结构化类型 在《TypeScript 基础介绍&#xff08;一&#xff09;》TypeScript基础介绍&#xff08;一&#xff09;-CSDN博客中&#xff0c;我们探讨了 TypeScript 的类型系统基础、联合类型、类型断言和类型守卫等核心特性。这些内容解决了 JavaScript…

【科研绘图系列】R语言绘制线性相关性

文章目录 介绍 加载R包 数据下载 导入数据 数据预处理 画图 系统信息 参考 介绍 【科研绘图系列】R语言绘制线性相关性 加载R包 library(tidyverse) library(ggplot2) library(ggsignif) library(RColorBrewer) library(dplyr) library(reshape2

FastAPI的请求-响应周期为何需要后台任务分离?

url: /posts/c7b54d6b3b6b5041654e69e5610bf3b9/ title: FastAPI的请求-响应周期为何需要后台任务分离? date: 2025-07-31T06:11:25+08:00 lastmod: 2025-07-31T06:11:25+08:00 author: cmdragon summary: FastAPI 的请求-响应周期遵循 ASGI 协议,类似于餐厅点餐流程。同步处…

多种录音笔录音芯片方案推荐

多种录音笔录音芯片方案推荐一、引言随着信息技术的飞速发展&#xff0c;录音笔作为一种重要的音频记录设备&#xff0c;在会议记录、采访、学习等众多场景中得到广泛应用。其核心的录音芯片方案直接影响录音质量、功能特性以及产品成本。唯创知音作为音频芯片领域的知名厂商&a…

Linux系统编程Day2-- Linux常用操作

一、Linux 基本命令概览以下是一些常用的Linux命令操作&#xff0c;后续我们会对其每个单独如何使用进行讲解。操作类型常用命令示例文件/目录操作ls, cd, cp, mv, rm, mkdir, rmdir查看文件内容cat, less, more, head, tail查找操作find, grep, locate, which权限管理chmod, c…

cs336 assignment1 作业环境配置

代码结构 所有的代码写到cs336_basics/* 下面&#xff0c;在adapters.py里调用自己的.py&#xff0c;通过所有的test。 作业资料参考 karpathy视频仓库&#xff1a; 视频 github仓库 测试项目运行环境 下载uv uv官网仓库 使用命令&#xff1a; powershell -ExecutionPoli…