Qt6之QListWidget——Qt仿ToDesk侧边栏(1)
一、 QLitWidget概述
注意:本文不是简单翻译Qt文档或者接口函数,而侧重于无代码Qt设计器下演示使用。
QListWidget也称列表框类,它提供了一个类似于QListView提供的列表视图,但是它具有一个用于添加和删除项的经典的基于项的接口。在实际应用中,多与堆栈窗体类配合使用。
它是Qt这些常用基础组件里,我认为最被低估的类,其实QListWidget反到灵活、简单、实用,包括我自己在侧栏或者上栏,也经常使用了QFrame+QPushButton或者QToolButton组合拼接起来自己“造轮子”,如下图卡巴和微信的侧栏列表框样式以及本文演示重点todesk侧边栏:



大部分不熟悉的人,潜意识里都觉得QListWidget太低级不好用只配实现下图左的效果,本次我们按照ToDesk已有布局实现如下右图效果,只用qt designer设计器和样式表且不使用一行代码:


二、实例演示和试用
2.1、拖出列表框类并添加列表
如下图,在Item Widget栏里1位置,直接拖拽出List Widget,会得到2位置所示的白框,看这什么也没有那是因为没有列表菜单,双击2位置空间,在3位置点绿色添加按钮,在输入名称就可显示了,依次增加5个得到下右图所示;


2.2、对QListWidget设置背景去除边框
QListWidget选中右键,改变样式表,输入以下内容,得到下右图所示:
QListWidget {background-color: rgb(240, 243, 248);border: 0;
}


2.3、调整字体大小
将所有列表菜单字体,一次性全部字体大小调成12;
QListWidget选中,最右边窗口font,12,确认即可,得到右图;


2.4、调整每个列表菜单高度
解决每个列表菜单高度,也叫Item高度。
此时每个按钮菜单已经可以点击或者选中了,但是按钮高度太低,导致都挤在了上面,改变item高度,还有每个按钮圆角,我一般还是习惯样式表,如下图:
QListView::item {height: 45px;border-radius: 5px;
}


2.5、设置鼠标划过和选中效果
依旧是选中,编辑样式表:其中background背景颜色,color字体颜色。设置完成后如右图:
QListView::Item:hover {background: rgb(229, 237, 248);}QListView::Item:selected {background: rgb(204, 223, 248);color: rgb(0, 112, 249);
}


2.6、解决左侧图标
2.6.1 项目,右键,新建文件,选择“Qt resource file”,随便一个英文名,后期会被视为路径,建议resource,此时得到右图,在qrc文件位置,添加现有文件,把准备好的图标一把添加。
备注:每个菜单有两个图标,是因为选中后图标是蓝色,所以是两个



2.6.2 选中,右键,编辑项目,再选择属性,滚动找到icon,点小三角形,再点选择资源,找到第一个control对应黑色图标;紧接着,滚动到“选择 关”位置,同样点小三角形,再点选择资源,找到第一个control对应蓝色图标,确认即可。




2.6.3 按照上面的方面,把5个列表,依次设置图标,完成后,如下图,会看到图标特别小,我们需要根据图标大小,设置一下,在如下箭头所示位置,iconsize的宽度和高度都设置为30,得到下右图,已经接近完美了;


2.7、解决选中后的虚线框问题
这里也采用样式表去除,选中列表框整体,右键,改变样式表,增加如下,如下图:
QWidget:focus{
outline: none;
}

2.8 最终编译演示
此时已经,完整完成,侧边栏,如下图,下篇将演示和堆栈窗体类QStackedWidget结合起来,实现翻页切换功能:

总结,实际上Qt提供给我们的是小孩积木,到底堆成怎样效果,取决于想象力和熟练度。下篇将QStackedWidget很容易的实现切换页,相对于QFrame+QPushButton或者QToolButton这种造轮子组和,更加简洁、实用和易理解。
相关文章:
Qt6之QListWidget——Qt仿ToDesk侧边栏(1)
一、 QLitWidget概述 注意:本文不是简单翻译Qt文档或者接口函数,而侧重于无代码Qt设计器下演示使用。 QListWidget也称列表框类,它提供了一个类似于QListView提供的列表视图,但是它具有一个用于添加和删除项的经典的基于项的接口…...
Prometheus技术文档--基本安装-docker安装并挂载数据卷-《十分钟搭建》
一、查看可安装的版本 docker search prom/prometheus 二、拉取镜像 docker pull prom/prometheus 三、查看镜像 docker images 四、书写配置文件-以及创建挂载目录 宿主机挂载目录位置: 以及准备对应的挂载目录: /usr/local/docker/promethues/se…...
Android 数据库之GreenDAO
GreenDAO 是一款开源的面向 Android 的轻便、快捷的 ORM 框架,将 Java 对象映射到 SQLite 数据库中,我们操作数据库的时候,不再需要编写复杂的 SQL语句, 在性能方面,greenDAO 针对 Android 进行了高度优化,…...
kotlin 编写一个简单的天气预报app(六)使用recyclerView显示forecast内容
要使用RecyclerView显示天气预报的内容 先在grandle里添加recyclerView的引用 implementation androidx.recyclerview:recyclerview:1.3.1创建一个RecyclerView控件:在布局文件中,添加一个RecyclerView控件,用于显示天气预报的列表。 这是一…...
jpa Page 1 of 0 containing UNKNOWN instances错误关于like问题的解决记录
导致这个问题的原因很多,这里记录一下我碰到的问题和解决方法。 网上有说时 pageNo要从0开始,我的不是这个问题。 在使用springboot jpa时,发现使用 t.ip like %?5% 语句,如果数据库记录的ip is null时,将查询不到该…...
Python实战之使用Python进行数据挖掘详解
一、Python数据挖掘 1.1 数据挖掘是什么? 数据挖掘是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,通过算法,找出其中的规律、知识、信息的过程。Python作为一门广泛应用的编程语言,拥有丰富的数据挖掘库&#…...
scala 加载properties文件
利用java.util.Properties加载 import java.io.FileInputStream import java.util.Properties object LoadParameter {//动态获取properties文件可配置参数val props new Properties()def getParameter(s:String,filePath:String): String {props.load(new FileInputStream(f…...
备战秋招012(20230808)
文章目录 前言一、今天学习了什么?二、动态规划1.概念2.题目 总结 前言 提示:这里为每天自己的学习内容心情总结; Learn By Doing,Now or Never,Writing is organized thinking. 提示:以下是本篇文章正文…...
QT中定时器的使用
文章目录 概述步骤 概述 Qt中使用定时器大致有两种,本篇暂时仅描述使用QTimer实现定时器 步骤 // 1.创建定时器对象 QTimer *timer new QTimer(this);// 2.开启一个定时器,5秒触发一次 timer->start(5000); // 3.建立信号槽连接&am…...
【UE4】多人联机教程(重点笔记)
效果 1. 创建房间、搜索房间功能 2. 根据指定IP和端口加入游戏 步骤 1. 新建一个第三人称角色模板工程 2. 创建一个空白关卡,这里命名为“InitMap” 3. 新建一个控件蓝图,这里命名为“UMG_ConnectMenu” 在关卡蓝图中显示该控件蓝图 打开“UMG_Connec…...
【go】GIN参数重复绑定报错EOF问题
文章目录 1 问题描述2 解决:替换为ShouldBindBodyWith 1 问题描述 在 Gin 框架中,当多次调用 ShouldBind() 或 ShouldBindJSON() 方法时,会导致请求体的数据流被读取多次,从而出现 “EOF” 错误。 例如在api层绑定了参数&#x…...
关于MySQL中的binlog
介绍 undo log 和 redo log是由Inno DB存储引擎生成的。 在MySQL服务器架构中,分为三层:连接层、服务层(server层)、执行层(存储引擎层) bin log 是 binary log的缩写,即二进制日志。 MySQL…...
我维护电脑的方法
无论是学习还是工作,电脑都是IT人必不可少的重要武器,一台好电脑除了自身配置要经得起考验,后期主人对它的维护也是决定它寿命的重要因素! 你日常是怎么维护你的“战友”的呢,维护电脑运行你有什么好的建议吗ÿ…...
AP51656 电流采样降压恒流驱动IC RGB PWM深度调光 LED电源驱动
产品描述 AP51656是一款连续电感电流导通模式的降压恒流源,用于驱动一颗或多颗串联LED 输入电压范围从 5 V 到 60V,输出电流 可达 1.5A 。根据不同的输入电压和 外部器件, 可以驱动高达数十瓦的 LED。 内置功率开关,采用电流采样…...
Python爬虫的解析(学习于b站尚硅谷)
目录 一、xpath 1.xpath插件的安装 2. xpath的基本使用 (1)xpath的使用方法与基本语法(路径查询、谓词查询、内容查询(使用text查看标签内容)、属性查询、模糊查询、逻辑运算) (2&a…...
python的virtualenv虚拟环境无法激活activate
目录 问题描述: 解决办法: 解决结果: 问题描述: PS D:\pythonProject\pythonProject\DisplayToolLibs\venv\Scripts> .\activate .\activate : 无法加载文件 D:\pythonProject\pythonProject\DisplayToolLibs\venv\Scripts\…...
uniapp中token操作:存储、获取、失效处理。
实现代码 存储token:uni.setStorageSync(token, res.data.result);获取token:uni.getStorageSync(token);清除token:uni.setStorageSync(token, ); 应用场景 在登录操作中,保存token pwdLogin() {....this.$axios.request({url: .....,method: post,p…...
乐鑫科技 2022 笔试面试题
岗位:嵌入式软件实习生。 个人情况:本科双非电子信息工程,硕士华五软件工程研一在读;本科做过一些很水的项目 ,也拿项目搞了一些奖,相对来说嵌入式方向比较对口。 时间线及面试流程 2021.04.02 笔试 题目分为选择题和编程题,选择题二十题,编程题两题; 选择题基本…...
实现UDP可靠性传输
文章目录 1、TCP协议介绍1.1、ARQ协议1.2、停等式1.3、回退n帧1.4、选择性重传 1、TCP协议介绍 TCP协议是基于IP协议,面向连接,可靠基于字节流的传输层协议 1、基于IP协议:TCP协议是基于IP协议之上传输的,TCP协议报文中的源端口IP…...
Zebec Protocol 将进军尼泊尔市场,通过 Zebec Card 推动地区金融平等
流支付正在成为一种全新的支付形态,Zebec Protocol 作为流支付的主要推崇者,正在积极的推动该支付方案向更广泛的应用场景拓展。目前,Zebec Protocol 成功的将流支付应用在薪酬支付领域,并通过收购 WageLink 将其纳入旗下…...
5分钟搞定!Clipy剪贴板管理神器让Mac效率翻倍
5分钟搞定!Clipy剪贴板管理神器让Mac效率翻倍 【免费下载链接】Clipy Clipboard extension app for macOS. 项目地址: https://gitcode.com/gh_mirrors/cl/Clipy 还在为macOS只能记住最后一次复制内容而烦恼吗?Clipy是一款专为Mac用户设计的剪贴板…...
C++的std--ranges中的技术优化排序
C20引入的std::ranges库为算法操作带来了革命性改进,尤其在排序优化领域展现出强大的现代性。本文将深入探讨std::ranges如何通过结构化绑定、惰性求值和定制化投影等技术,实现更高效、更灵活的排序操作,为开发者提供超越传统STL的解决方案。…...
从Stable Diffusion到多模态大模型:图文交错数据如何让AI学会‘边想边画’?
图文交错数据:多模态大模型实现"边想边画"的关键突破 当Stable Diffusion以惊艳的画质震惊世界时,人们很快发现它存在一个根本局限——这个能画出精美图像的模型,却无法理解自己笔下的内容。与此同时,擅长理解图像的多模…...
别再让单片机‘死机’!手把手教你用TPV6823设计一个靠谱的硬件看门狗电路
嵌入式系统守护者:TPV6823硬件看门狗电路实战指南 当电机控制板在工厂车间突然停止响应,或是工业传感器在雷雨天气后持续报错,许多工程师的第一反应往往是"程序又跑飞了"。这种嵌入式系统运行失控的现象,就像一台无人看…...
造相-Z-Image实战手册:基于Z-Image的AIGC版权合规提示词生成规范
造相-Z-Image实战手册:基于Z-Image的AIGC版权合规提示词生成规范 1. 项目概述与核心价值 造相-Z-Image是一款专为RTX 4090显卡优化的本地化文生图系统,基于通义千问官方Z-Image模型构建。这个项目最大的特点是将强大的AI图像生成能力带到了个人电脑上&…...
Qt 实时数据可视化工程实践:环形缓冲区实践
目录 前言 一、架构设计 1.1 分层架构图 1.2 数据写入流 1.3 数据刷新流 (定时器驱动 → 视图更新) 1.4 核心设计思想 二、核心实现详解 2.1 RingBuffer:环形缓冲区实现 2.1.1 append函数(线程安全写入) 函数主体实现: …...
XUnity.AutoTranslator:如何为Unity游戏构建高效的多语言本地化系统
XUnity.AutoTranslator:如何为Unity游戏构建高效的多语言本地化系统 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator是一个专为Unity游戏设计的自动翻译插件,…...
二叉树面试送分题|力扣101对称+226翻转(递归极简写法,手写无压力)
兄弟们!二叉树面试中,有两道“送分题”必须拿捏——力扣101.对称二叉树和力扣226.翻转二叉树。这两道题难度不高,核心都能用递归轻松解决,代码简洁、逻辑直观,新手练一遍就能记住,面试手写直接加分…...
探索DevOps之路:2024年DevOps路线图
探索DevOps之路:2024年DevOps路线图 【免费下载链接】DevOps-Roadmap DevOps Roadmap for 2026. with learning resources 项目地址: https://gitcode.com/GitHub_Trending/de/DevOps-Roadmap 项目介绍 DevOps Roadmap 2024 是一个精心设计的步骤指南&#…...
QWEN-AUDIO声波可视化效果展示:CSS3动态波形+玻璃拟态UI交互截图
QWEN-AUDIO声波可视化效果展示:CSS3动态波形玻璃拟态UI交互截图 基于通义千问 Qwen3-Audio 架构构建的新一代语音合成系统,集成情感指令微调与声波可视化交互,致力于提供具有"人类温度"的超自然语音体验。 1. 视觉交互效果全景展示…...
