最近在工作中经常遇到了一个问题就是把把文件夹中的图片全部以缩略图的形式显示出来,刚开始的时候一头雾水,不知道怎么办,经过在网上查资料,发现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. Qt之加密算法

          在写这篇文章之前,我曾反复思量关于加密的叫法是否准确,更为严格来说,应该是密码散列-将数据(如中英文字母.特殊字符)通过复杂的算法转换为另一种固定长度的值.   QCryptographi ...

  2. pd的django To do list教程-----(2)models模型的建立

    1:在models.py中建表 from django.db import models class Tcontent(models.Model): content = models.CharFiel ...

  3. 爆炸!iOS资源大礼包(持续更新...)

    今天为大家整理了一些关于iOS学习的干货,献给正在奋斗的你们,首先声明一下,在整理的过程中参考了大量的博客和文章,知识的分享终究会增值,在此表示感谢,希望这篇文章给大家带来帮助. 基础部分: C语言教 ...

  4. MVC上传相关

    1.上传大小设置 system.web节点,httpruntime节点加入maxRequestLength="4096",以K为单位,例子中大小限制为4M. 2.form提交htm ...

  5. 武汉科技大学ACM :1001: A + B Problem

    Problem Description Calculate A + B. Input Each line will contain two integers A and B. Process to e ...

  6. typedef std::string AddressLines[4]定义了一个string数组,大小为4

    int main() { typedef std::]; std::]; std::string *pal1 = new AddressLines; delete [] pal; delete [] ...

  7. C语言结构体(struct)常见使用方法

    基本定义:结构体,通俗讲就像是打包封装,把一些变量有共同特征(比如同属于某一类事物的属性)的变量封装在内部,通过一定方法访问修改内部变量. 结构体定义: 第一种:只有结构体定义 struct stuf ...

  8. 文件操作IO流

    fopen 打开文件或者生成文件 getc 向文件中读取一个字符 putc 向文件中写入一个字符 fgets 向文件中读取字符串 参数可以设置获取多少个字符串 fputs 向文件中写入字符串 不自动添 ...

  9. GCD 深入理解

    GCD 深入理解(一) 虽然 GCD 已经出现过一段时间了,但不是每个人都明了其主要内容.这是可以理解的:并发一直很棘手,而 GCD 是基于 C 的 API ,它们就像一组尖锐的棱角戳进 Object ...

  10. JTA

    http://blog.csdn.net/hengyunabc/article/details/19433947