【QT入门】 QListWidget各种常见用法详解之图标模式

【Qt笔记】QListWidget控件详解 QListWidget 是 Qt 框架中一个非常实用的控件,它提供了一个基于项目的列表视图,允许用户以列表形式展示和交互数据项。 阅读详情
AI摘要

本文聚焦QT中QListWidget的图标模式,介绍其纯代码设计方法。先回顾往期QListWidget列表模式,接着阐述图标模式设计思路,包括创建布局、listWidget,设置图标模式、滑动条,初始化对象,设置图标及item宽高,最后添加到布局,还给出完整代码示例。

往期回顾

【QT入门】 Qt代码创建布局之多重布局变换与布局删除技巧-优快云博客

【QT入门】 QTabWidget各种常见用法详解-优快云博客

【QT入门】 QListWidget各种常见用法详解之列表模式-优快云博客

【QT入门】 QListWidget各种常见用法详解之图标模式

QListWidget有列表和图标两种显示模式,默认是列表模式,列表模式上方链接已给出,我们现在看图标模式。

enum ViewMode
{
ListMode, //列表模式
IconMode //图标模式
};

学一个新的控件,首先要看他是怎么构造的,其次看怎么用,常用的方法,然后要去看他的信号函数,特别是熟悉常用方法和信号。一般来说ui界面创建和手动代码创建都要学会。 

这里我们先只看纯代码设计。

一、纯代码设计

1、最终效果

2、代码思路

 2.1创建布局

1、我们首先创建水平或者垂直布局,因为只有一个布局,所以哪个都行。

QVBoxLayout* pVLay = new QVBoxLayout(this);
2.2创建listWidget

 2、创建一个listWidget来存放item,注意,是先放listWidgetItem,然后在listWidgetItem里面放Icon

 QListWidget* pLWidget = new QListWidget(this);
2.3设置图标模式

 3、这里需要注意,由于QListWidget默认列表模式,所以我们使用图标模式还需要进行设置,加了才能显示图标

pLWidget->setViewMode(QListView::IconMode);

setViewMode一共就两个参数
enum ViewMode { ListMode, IconMode };列表或者图标模式

2.4设置滑动条

4、设置滑动条,水平滑动条和垂直滑动条,注意用的方法名

 pLWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
 pLWidget->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);

控制滑动条的三个参数  

ScrollBarAsNeeded,//需要时显示       
ScrollBarAlwaysOff,//不显示        
ScrollBarAlwaysOn//显示
2.5初始化QIcon和QString对象

5、多个图标用for循环进行加载,先初始化QIcon和QString对象,一个是图标路径,一个是图标名字,这里都是没有new的,直接隐式调用了,

QIcon Icon(":/QListWidget_03/res/vim.png");
QString name = QString("LinFeng00%1").arg(QString::number(i));

同时这里用法要知道,怎么实现把i这个自增参数加到QString对象里面去,而且我是可以多次使用的,比如

QString name = QString("LinFeng%1And%2And%3").arg(QString::number(i)).arg(QString::number(i)).arg(QString::number(i));
 2.6设置QListWidgetIcon

 6、回看第三点,不是直接放Icon在listWidget里面,是先把Icon和name放到QListWidgetIcon里面

QListWidgetItem* pListItem1 = new QListWidgetItem(Icon, name);

2.7设置item宽高 

7、接着对item设置宽高,这里的item宽高,不能说用整体widget的来算,比如整体widget我设置宽600,item宽200,不能说就能放三个,因为除了item本身宽度,还要考虑滑动条宽度等,所以实际需要的widget宽度肯定更大,另外注意每个item之间的margin-right/left是包含在180里面了的

        pListItem1->setSizeHint(QSize(180,180));

        pLWidget->addItem(pListItem1);
2.7添加listWidget 

 8、最后把listWidget加到布局里就欧克

pVLay->addWidget(pLWidget);

另外其实还可以设计样式对整体图标模式样式进行设计,大家可以自行涉及。

3、完整代码示例

代码注释写的还算详细,应该没啥大问题。

QListWidget_03::QListWidget_03(QWidget *parent)
    : QWidget(parent)
{

    resize(800, 500);

    //创建一个垂直布局,其实这里就一个,水平竖直都可以
    QVBoxLayout* pVLay = new QVBoxLayout(this);

    //创建一个listwidget放item
    QListWidget* pLWidget = new QListWidget(this);
    //这行代码很重要,是用来设置显示模式,不加的话,默认是列表模式,加了才能显示图标
    pLWidget->setViewMode(QListView::IconMode);

    //控制滑动条三个参数
    /*
       enum ScrollBarPolicy {
        ScrollBarAsNeeded,//需要时显示
        ScrollBarAlwaysOff,//不显示
        ScrollBarAlwaysOn//显示
    };
    */
    pLWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
    pLWidget->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);

    //用for循环加载图标
    for (int i = 0; i < 15; i++)
    {
        //先初始化QIcon和QString对象,一个是图标路径,一个是图标名字

        //QIcon的使用,我感觉不是很熟悉
        //QIcon *Icon = new QIcon(":/QListWidget_03/res/vim.png");
         QIcon Icon(":/QListWidget_03/res/vim.png");

         //这里用法要知道,怎么实现把i这个自增参数加到QString对象里面去
        //QString name = QString("LinFeng%1And%2And%3").arg(QString::number(i)).arg(QString::number(i)).arg(QString::number(i));
        QString name = QString("LinFeng00%1").arg(QString::number(i));

        //QListWidgetItem *pListItem1 = new QListWidgetItem(QIcon(":/new/prefix2/res/editor.png"),"editor");
        QListWidgetItem* pListItem1 = new QListWidgetItem(Icon, name);
        //这里的item宽高,不能说用整体widget的来算,比如整体widget我设置宽600,item宽200,不能说就能放三个
       //因为除了item本身宽度,还要考虑滑动条宽度等,所以实际需要的widget宽度肯定更大
        //每个item之间的margin-right/left是包含在180里面了的
        pListItem1->setSizeHint(QSize(180,180));

        pLWidget->addItem(pListItem1);

    }


    pVLay->addWidget(pLWidget);

}

都看到这里了,点个赞再走呗朋友~

加油吧,预祝大家变得更强!

【QT】——QListWidget的使用 QListWidget 是qt中的列表框控件,它用于显示多个列表项,列表项对应的类是QListWidgetItem. 列表项中可以同时包含图片和文字。 阅读详情

相关推荐

【Qt控件之QListWidget】介绍及使用,利用QListWidget、QToolButton、和布局控件实现抽屉式组合控件

`QListWidget`是一个方便的类,类似于`QListView`提供的列表视图,但使用经典的基于项目的接口来添加和删除项目。`QListWidget`使用内部模型来管理列表中的每个`QListWidgetItem`。 对于更灵活的列表视图小部件,请使用具有标准模型的QListView类。

FreeLikeTheWind的博客 1万+

[QT_007]Qt学习之QListWidget控件详解

QListWidget控件详解

kongcheng253的博客 1万+

Qt QListWidget列表框用法详解

Qt QListWidget列表框用法详解 很多应用程序中需要以列表的形式向用户展示数据(资源),比如 Windows 操作系统会以列表的方式展示很多张桌面背景图(如图 1a) 所示),再比如很多音乐播放器中以列表的形式展示音乐资源,用户可以选择自己喜欢的音乐(如图 1b) 所示)。 图 1 常见的列表窗口 使用 Qt 框架开发 GUI 程序,如果需要以列表的方法展示数据,可以优先考虑用 QListWidget 类实现。 QListWidget列表框的创建 QListWidget 是 Qt 提供的控件类,

ccc369639963的博客 1万+

Qt中QListWidget/QListWidgetItem详解

Qt中QListWidget/QListWidgetItem详解

aoxuestudy的专栏 9238

QT中QListWidget实现QListWidgetItem图片和文字居中

说明 在使用QT开发软件的过程中,很多时候使用QListWidget来实现列表项的功能,比如MS系统的功能模块菜单,如下面2张图所示,其中第一张图是带文字和图标的列表项,第二张图是纯图标的模式,在最近开发的平台客户端的某个功能模块都用上了。 列表项实现过程 在实现的过程中,参考了另外一位博主的博客( 利用QListWidget实现简单的播放器界面.),所以我这里就没有过多的介绍如何实现的了,大家看了那边博客就能实现QListWeiget项图标居中的样式了,写这篇博客就是为了大家能链接过去,可能有时候搜索

C++ 开发者的博客 1万+

Qt QListWidget详解

Qt提供QListWidget类列表框控件用来加载并显示多个列表项。QListWidgetItem类就是列表项类。一般列表框控件中的列表项有两种加载方式: 一种是由用户手动添加的列表项,比如音乐播放器中加载音乐文件的文件列表,每一个音乐文件都是一个列表项。 对于这种列表项,用户可以进行增加、删除、单击以及双击等操作。 一种是由程序员事先编写好,写在程序中供用户选择的列表项,比如餐厅的电子菜单,每一道菜对应一个列表项。 对于这种列表项,用户可以进行单机和双击操作(增加和删除操作也是可以进行的,但是一般的点菜系

芒种、的博客 7725

【QT入门】 QListWidget各种常见用法详解之列表模式

【QT入门】 QListWidget各种常见用法详解之列表模式

LF__plus的博客 9809

【QT进阶】QListWidget图标模式实战:打造动态交互式文件浏览器

本文详细介绍了如何使用QT的QListWidget图标模式打造动态交互式文件浏览器。从基础设置到高级功能实现,包括动态加载文件系统图标、悬停特效、双击打开文件等交互设计,以及性能优化和样式定制技巧。通过实战案例展示如何结合QFileSystemModel和QListWidgetItem创建高效的文件管理系统,特别适合需要视觉化文件展示的QT开发场景。

weixin_29261711的博客 630

QListWidget的图标模式

本文介绍了Qt中QListWidget的图标模式(Icon Mode)功能。主要内容包括:如何设置图标模式、自定义图标和文本、使用QSS样式美化界面、调整图标大小、实现拖放功能、使用自定义委托等高级用法。文章还提供了性能优化建议和一个完整的示例代码,展示如何创建具有现代UI风格的图标视图列表。通过合理的配置和样式设置,开发者可以创建出类似文件管理器的直观用户界面,适用于图片、文件等视觉化项目的展示和管理。

软件科学-郝学胜 1109

QT中QListWidget

Qt 中用于项(Item)处理的组件有两类,一类是 Item Views,包括 QListView、QTreeView、 QTableView、QColumnView 等;另一类是 Item Widgets,包括 QListWidget、QTreeWidget 和 QTable Widget。 Item Views 基于模型/视图(Model/View)结构,视图(View)与模型数据(Mode...

conimade的博客 3398

Qt开发:QListWidget的介绍和使用

QListWidget 是 Qt 中提供的一个高级列表控件,基于 QListView 封装,允许你快速构建带有 文本项、图标、复选框、用户数据等功能的列表界面,广泛应用于设置面板、文件列表、侧边菜单等场景。

TechNomad的博客 2096

Qt 高级开发 031:QListWidget图标布局实战

本文详细介绍了Qt中QListWidget控件的图标布局实现方法,通过纯代码方式从零构建,避免了可视化UI拖拽的局限性。文章从项目初始化开始,讲解了视图模式切换、批量图标加载、条目尺寸计算、滚动条策略配置等核心内容,并重点剖析了边距嵌套和滚动条占位等常见问题。通过QSS样式定制实现界面美化,提供了完整的可编译源码示例。文章最后总结了开发过程中可能遇到的五大高频问题及解决方案,帮助开发者深入理解Qt控件底层渲染逻辑,灵活应对各类定制化需求。

软件科学-郝学胜 1013

QT的QListWidget详解

QListWidget是 Qt 框架中用于显示列表的一个类,列表中的项可以是简单的字符串,也可以带有图标,用户可以查看、增加、删除、修改项,可以进行点击等操作进行交互,总之,QListWidget功能很强大,可以满足列表数据中的各种需求。

qq_52137592的博客 1797

【QT入门】 QScrollArea实际运用之导航栏设计

【QT入门】 QScrollArea实际运用之导航栏设计

LF__plus的博客 1959

S32K144 ADC硬件触发实战:PDB模块配置与DMA传输全流程解析

本文详细解析了S32K144微控制器中ADC硬件触发的全流程实现。通过配置PDB模块产生精确的定时触发信号,并联动DMA实现转换数据的自动搬运,构建了一个无需CPU干预的高效、低抖动数据采集系统。文章深入讲解了时钟配置、模块初始化、DMA引擎搭建及实战调试技巧,为汽车电子和工业控制应用提供了可靠的解决方案。

weixin_29174141的博客 226

解决vscode 连接服务器报错:The remote host may not meet VS Code Server‘s prerequisites for glibc and libstdc++

解决vscode远程连接服务器报错:The remote host may not meet VS Code Server's prerequisites for glibc and libstdc++ (The remote host does not meet the prerequisites for running VS Code Server)

qq_37200100的博客 9910

【QT学习】QListWidget实现鼠标进入某个item图标自动放大

QListWidget界面在IconMode(图标模式)的显示下,当鼠标进入到其中某个item的范围时,该item图标自动放大。

孤生i的博客 4305

英飞凌TC377的Flash管理、UCB配置与HSM安全机制解析

本文深入解析了英飞凌TC377微控制器的Flash存储结构、UCB配置机制与HSM安全模块。详细阐述了带Cache与不带Cache的PFlash地址访问差异、利用SOTA与AB Swap实现无感OTA更新的原理,以及如何通过UCB安全配置启动流程与写保护。重点剖析了HSM硬件安全模块在密钥管理、安全启动与安全OTA中的核心作用,为开发高可靠性嵌入式系统提供实战指南。

weixin_29170327的博客 523

【qt】QListWidget 组件

/可以自定义菜单将上下文菜单策略设置为自定义菜单策略。在这种策略下,当用户在该部件上右击时,不会自动弹出默认的上下文菜单,而是需要手动编写代码来定义自己的上下文菜单。对于的组件,我们最重要的一点是往里面添加的是列表项,这又是一种类型。因此我们要注意那些接口是用在列表项的,那些是用在列表的。冰冻三尺,非一日之寒。

qq_74047911的博客 3892

探测器反向偏压_光探测器PN结原理

1 光探测原理在光的作用下,当光敏物质中的电子直接吸收光子的能量足以客服原子核的束缚时,电子就会从基态被激发到高能态,脱离原子核的束缚,在外电场作用下参与导电,因而产生了光电效应。(这里需要说明的是,如果光子不是直接与电子起作用而是能量被固体晶格振动吸收,引起固体的温度升高,导致固体电学性质的改变,这种情况就不是光电效应而是热电效应)。根据所用结的种类的不同,可分为PN结,PIN 结型,...

weixin_42489104的博客 2548

PyCharm 接入 OpenAI Codex CLI 的 4 步配置与调试实录

揭示 Codex CLI 在 PyCharm 中上下文失稳的四大根源:CLI 启动模式与 IDE 进程模型冲突、stdin/stdout 流式处理不兼容、环境变量污染、AST 注释缺失,并给出基于 Shell 脚本桥接与结构化上下文注入的稳定接入方案。

weixin_42627902的博客 374

Qt学习之使用QListWidget加载本地图片实现双击放大

QListWidget的列表项显示方式有两种,一种是IconMode(图标模式),一种是ListMode(列表模式),本文介绍IconMode(图标模式)的使用,加载本地图片,双击列表的每一项可以进行图片放大。涉及QListWidget的使用、QListWidget样式表设计、QListWidget列表项双击信号、QLabel显示图像、事件过滤器等等。

似末的博客 7794

054_小驰私房菜_Camx i2c读写相关备忘

Camera 对Ae、Af这些控制,实际都是,最终实际都是落实到hal下发相关的指令给驱动,那hal这边是怎么给驱动下发相关命令的呢?#小驰私房菜054# #Qcom Camx#可以参考看下下面相关代码内容。

149
上一篇: 【QT入门】 QListWidget各种常见用法详解之列表模式
下一篇: 【Qt问题】Qt常用快捷键汇总
从一的
博客等级 码龄5年 1995粉丝 213原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值