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

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人必不可少的重要武器,一台好电脑除了自身配置要经得起考验,后期主人对它的维护也是决定它寿命的重要因素! 你日常是怎么维护你的“战友”的呢,维护电脑运行你有什么好的建议吗&#xff…...

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 将其纳入旗下&#xf…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

django filter 统计数量 按属性去重

在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...