最近在工作中经常遇到了一个问题就是把把文件夹中的图片全部以缩略图的形式显示出来,刚开始的时候一头雾水,不知道怎么办,经过在网上查资料,发现QListWidget控件可以实现图片的缩略图显示,但是不知道怎么利用这个控件实现这个功能,网上有很多例子,但是在windows系统上用Qt编译这些程序以后却得不到理想的效果,虽然也可以让这些图片以缩略图的形式显示,但是都必须把这些图片做成资源文件,这和平时的开发中把很多即时的图片以缩略图的形式显示完全不同。所以找了好几天资料,最终解决了这个问题,下面是实现缩略图显示的主要代码,只需要把这些代码放入槽函数中就可以实现全部图片以缩略图的形式显示。

代码如下:

QString filePath    =   tr("/media/sd/PICTURES");
QListWidget *listWidget_File = new QListWidget(this);
listWidget_File->setObjectName(QString::fromUtf8("listWidget_File"));
listWidget_File->setGeometry(QRect(0, 0, 0, 0));

QDirIterator m_DirIterator(QString("/media/sd/PICTURES"),QDir::Files|QDir::NoSymLinks,QDirIterator::Subdirectories);

listWidget_File->clear();//保证每次进入listWidget_File的时候都会是空的

while (m_DirIterator.hasNext())

{
      QString tempFile=m_DirIterator.next();

listWidget_File->setIconSize(QSize(100, 100));        //设置QListWidget中的单元项的图片大小
      listWidget_File->setResizeMode(QListView::Adjust);
      listWidget_File->setViewMode(QListView::IconMode);   //设置QListWidget的显示模式
      listWidget_File->setMovement(QListView::Static);    //设置QListWidget中的单元项不可被拖动
      listWidget_File->setSpacing(10);                   //设置QListWidget中的单元项的间距

QPixmap objPixmap(tempFile);                      //生成图像objPixmap
                                                       //tempfile当中的/media/sd/PICTURES字符串删去,并返回剩余部分
      tempFile=tempFile.remove(QString("/media/sd/PICTURES"), Qt::CaseSensitive);

//生成QListWidgetItem对象

QListWidgetItem *pItem = new QListWidgetItem(QIcon(objPixmap.scaled(QSize(100,100))),tempFile);

pItem->setSizeHint(QSize(100,120));            //设置单元项的宽度和高度

listWidget_File->addItem(pItem);              //添加QListWidgetItem项
 }

listWidget_File->setGeometry(NULL,NULL,480,272);

此段代码我在嵌入式版本的QT中运行成功,并在嵌入式设备中达到预期的目标,Sd卡中的图片全部以缩略图的形式显示了出来。

QListWidget方式显示缩略图的更多相关文章

  1. 3种终极方法,彻底解决CDR不显示缩略图!

    站长所在的印刷出版行业,一般都是使用版本较低的CDR软件,以便更好的兼容出版厂,不然新版本的文件发厂出片时却打不开,而转低版本的话又容易出错.从最开始的 CorelDRAW 9 到现在的 CORELD ...

  2. CountUp.js – 让数字以非常有趣的动画方式显示

    CountUp.js 无依赖的.轻量级的 JavaScript 类,可以用来快速创建以一种更有趣的动画方式显示数值数据.尽管它的名字叫 countUp,但其实可以在两个方向进行变化,这是根据你传递的 ...

  3. Scroll View 控件以Thumbnail的方式显示一个目录的全部图片,相似图片浏览器

    MAC : XCode -> Scroll View 控件以Thumbnail的方式显示一个目录的全部图片,类似图片浏览器 STEP1:将两个目录复制到project里面ImageBrowser ...

  4. jquery.validate 以alert方式显示错误方法

    $.validator.setDefaults({ submitHandler: function() { alert("submitted!");return false; } ...

  5. 一个Android上的以滑动揭示的方式显示并切换图片的View

    SlideView是一个Android上的以滑动揭示的方式显示并切换图片的View,以视觉对比的方式把一套相似的图片展示出来. 示例 翻页图片揭示效果: 特性 设置一组(List<ImageIn ...

  6. 判断当前viewcontroller是push还是present的方式显示的

    网上的姿势,反正我用着不管用 最正确的姿势 NSArray *viewcontrollers = self.navigationController.viewControllers; if (view ...

  7. 设置Nginx以列表方式显示网站内容

    服务器目录内容: 访问该页面时,将所有文件和目录按列表方式显示 nginx配置文件

  8. Js实现input上传图片并显示缩略图

    用这个方法就可以很方便快捷的实现上传图片并显示缩略图的效果: FileReader 的 readAsDataURL() 先创建一个img标签,再用 fileReader 把input文件的赋值到img ...

  9. 使用 Sixel 图形格式在终端中显示缩略图

    不久前,我们讨论了 Fim,这是一个轻量级的命令行图像查看器应用程序,用于从命令行显示各种类型的图像,如 bmp.gif.jpeg 和 png 等.今天,我偶然发现了一个名为 lsix的类似工具.它类 ...

随机推荐

  1. CodeForces 242E - XOR on Segment 二维线段树?

    今天练习赛的题....又是线段树的变换..拿到题我就敲了个点更新区间查询的..果断超时...然后想到了可以将每个数与合表示成不进位的二进制数..这样就可以区间进行更新了..比赛的时候写搓了..刚重写了 ...

  2. C语言文件详解

    1.C语言FILE类,在stdio.h头文件中,FILE类是一个结构体:定义如下: 通过typedef定义了 文件类型 的别名: “FILE”,这样以后需要读写文件的时候直接定义FILE就行了.   ...

  3. 最长回文字符串(manacher算法)

    偶然看见了人家的博客发现这么一个问题,研究了一下午, 才发现其中的奥妙.Stupid. 题目描述:      回文串就是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串. ...

  4. HTML, CSS学习笔记(完整版)

    第一章 div布局 前几课内容 .htm是早期的后缀.由于那时仅仅能支持长度为3的后缀.因此html与htm是一样的. shtml是server先处理然后再交给浏览器处理 #HTML小知识#之#XHT ...

  5. Rational AppScan 扫描大型网站

    Rational AppScan 工作原理 Rational AppScan(简称 AppScan)其实是一个产品家族,包括众多的应用安全扫描产品,从开发阶段的源代码扫描的 AppScan sourc ...

  6. 你的第一Windows程序——管理应用程序状态

    MSDN原文(英文) 管理应用程序状态 一个窗口过程仅仅是一个为每个消息获取调用函数,所以它本质上是无状态的.因此,你需要一个方法来跟踪你的应用程序从一个函数调用下一个函数的状态. 最简单的方法是把一 ...

  7. Java设计模式---(动态)代理模式

    代理设计模式 定义:为其他对象提供一种代理以控制对这个对象的访问. 动态代理使用 java动态代理机制以巧妙的方式实现了代理模式的设计理念. 之前虽然会用JDK的动态代理,但是有些问题却一直没有搞明白 ...

  8. 设置开机启动时指定非ROOT用户执行相应的脚本

    [root@MSJTVL-MJSP-A01 sm01]# vim /etc/rc.d/rc.local #!/bin/sh # # This script will be executed *afte ...

  9. Find命令简介

    Find命令主要用于目标的搜索,尽量做到少使用,因为find会消耗大量的系统资源. 使用该命令时,需要避开服务器运行高峰期,最好在指定的小范围内进行搜索,不要轻易使用全盘搜索. Find命令常用的参数 ...

  10. FineUI 点击按钮添加标签页

    <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat=&quo ...