当前位置:C++技术网 > 资讯 > 求一个简易的图片浏览系统

求一个简易的图片浏览系统

更新时间:2017-02-05 19:36:19浏览次数:1+次

请问有木有简易的QT写的图片浏览系统?    谢谢~   

C++技术网会员解答:

    您好,祝您新年快乐!在2017年,希望您心想事成~

    需要说明的是,我们不直接提供软件源码的哦。当然,我们会给您提供一个实现的方案,您可以自己实现,简易图片浏览系统实现起来不难的。如果你确实需要软件源码,可以在网上搜索,一些网站会有提供。

    我们为了让你能真正学到东西,所以下面给您提供一个实现图片浏览系统的方案,供您参考。

    下面是QT使用控件显示图片的示例代码:

QImage *image=new QImage("C:/photos/cjjjs.jpg");  
QLabel *label=new QLabel(this);  
label->setGeometry(0,0,600,600);  
label->setPixmap(QPixmap::fromImage(*image));  
label->show(); 
     图片浏览的原理就是一张张的查看图片,点击上下翻页按钮可以切换图片显示。

     QT显示图片的方法,上面已经给出了示例代码。这是最基本的功能。那么如何前后切换图片呢?前后切换不就是将一个图片列表的图片按照顺序来显示嘛。问题就是要将所有的图片文件组织成一个列表,然后就可以通过按钮切换了。

    组织图片文件列表实际就是去检索一个文件夹的所有图片文件,然后形成一个列表。在这个列表中,存储的是图片文件的路径。我们要显示图片,也就是将这个文件读取并显示就行了。

    一般一个文件夹中不仅仅有图片,还有文本文件,所有我们要对文件夹里的文件进行过滤。我们将文件后缀名为jpg、png、gif等等的文件的路径存到列表中。

    文件夹遍历文件的方法,可以参考《MFC实现递归遍历文件夹内的所有文件夹和文件》,这个是MFC的实现,你可以用QT做等价替换。在过滤文件判断后缀名时,可以将文件名的字符串查找子字符串(图片文件后缀名),找到就加入列表,找不到就不加入列表。列表就用一个数组即可,建议使用容器,可以自动扩容,不需要提前设置容量。数组的话,就需要提前设置大小,不方便。

    我们使用的Windows的图片查看器,在显示一张图片后,就可以自动浏览上一张和下一张了。这个是提取这个图片所在的文件夹,然后再遍历这个文件夹的所有图片文件。算是非常人性化的地方。我们也可以这样做,也就是将当前显示的图片文件路径反向查找\符号,然后截断左边,就是当前图片文件夹路径了。然后遍历当前文件夹,获取所有图片文件路径,加入到列表中。不仅如此,你还可以递归获取所有的子文件夹的所有图片哦。

    总结来说,实现的关键点有:

    1.遍历文件夹的所有文件,过滤出图片文件,将图片文件路径存储在列表中。(参考遍历文件夹的文章)

    2.显示图片文件。(参考示例代码)

    3.点击上一张或下一张按钮时,遍历列表,在列表中取上一张或下一张图片的地址,然后再显示图片。

    再NB的图片浏览系统,基本原理就是这样的。你一定要试试,很快就可以做出来的,没有想象中的那么难。对了,你要设定当前图片所在的位置,以便上下翻的时候使用。当切换了文件夹后,要清空列表,重新遍历新的文件夹,重新设置当前图片位置。

    如果还有不明白的,留言哦~