1、项目简介

图片浏览器基于PyQt5来实现,用了designer工具进行了界面搭建,实现了图片预览、图片切换、图片缩放等功能。

PyQt是一个创建GUI应用程序的工具包。它是Python编程语言和Qt库的成功融合。Qt库是目前最强大的库之一。

2、项目结构

项目名称为:PicProject

测试图片文件夹:存放4张图片

其他:包含直接放在项目文件夹下面的一个python代码与一个designer生成的ui文件

注意:先创建项目,根据图中项目结构创建好对应的文件夹,4张图片先放进测试图片文件夹里面

3、图片浏览器的实现

3.1界面搭建

使用QtPy搭建功能界面,如下图

3.2 对应按钮功能的实现

打开图片目录按钮

    def OpenPictureDir(self):#在资源管理器窗口中打开默认路径selectimgFolder = QtWidgets.QFileDialog.getExistingDirectory(None, "select folder",self.defaultImFolder)#如果有选中路径if selectimgFolder != '':self.imgFolder=selectimgFolder#获取该路径下面所有的图片名称列表self.imageNameList = os.listdir(self.imgFolder)#print(imageNameList)if len(self.imageNameList)>0:#获取第一张图片的路径imgPath = os.path.join(self.imgFolder, self.imageNameList[0])#绘制图片,显示出来self.pix = QtGui.QPixmap(imgPath)self.label_Image.setPixmap(self.pix)#标记第一张图片的id为0self.curImgId = 0

上一张按钮

    def ShowBeforeImg(self):#如果不存在图片,则跳出if len(self.imageNameList) == 0:return# 当前如果不是第一张图片,才能显示上一张if self.curImgId > 0:imPath = os.path.join(self.imgFolder, self.imageNameList[self.curImgId-1])self.pix = QtGui.QPixmap(imPath)self.label_Image.setPixmap(self.pix)self.curImgId = self.curImgId - 1if self.curImgId < 0:self.curImgId = 0

        下一张按钮

    def ShowNextImg(self):# 如果不存在图片,则跳出if len(self.imageNameList)==0:returnimgCount = len(self.imageNameList)#当前如果不是最后一张图片,才可以显示下一张if self.curImgId<imgCount-1:imPath = os.path.join(self.imgFolder, self.imageNameList[self.curImgId+1])self.pix = QtGui.QPixmap(imPath)self.label_Image.setPixmap(self.pix)self.curImgId = self.curImgId+1

放大按钮

    def DoBiggerImg(self):# 如果不存在图片,则跳出if len(self.imageNameList) == 0:return#控制放大后,高度最大不超过900if self.label_Image.height()>=900:returnself.label_Image.setFixedSize(int(self.label_Image.width()*1.1),int(self.label_Image.height()*1.1))

        缩小按钮

    def DoSmallerImg(self):# 如果不存在图片,则跳出if len(self.imageNameList) == 0:return# 控制缩小后后,高度最小不小于100if self.label_Image.height() <= 100:returnself.label_Image.setFixedSize(int(self.label_Image.width() * 0.9), int(self.label_Image.height() * 0.9))

        恢复原图按钮

    def DoYuanTuImg(self):# 如果不存在图片,则跳出if len(self.imageNameList) == 0:return# 显示原图的大小self.label_Image.setFixedSize(661, 341)print("恢复的原图大小:", int(self.label_Image.width()), int(self.label_Image.height()))

        主函数入口

if __name__ == '__main__':app = QtWidgets.QApplication(sys.argv)mainWindow = QtWidgets.QMainWindow()ui = Ui_MainWindow()ui.setupUi(mainWindow)mainWindow.show()sys.exit(app.exec_())

        监听单价对应功能按钮

        # 设置图片的默认路径为当前工作路径(项目的路径)self.defaultImFolder = os.getcwd()# 设置为填充模式(图片填充满Label)self.label_Image.setScaledContents(True)# 监听按钮的单击self.pushButton_Open.clicked.connect(self.OpenPictureDir)self.pushButton_Next.clicked.connect(self.ShowNextImg)self.pushButton_Before.clicked.connect(self.ShowBeforeImg)self.pushButton_Bigger.clicked.connect(self.DoBiggerImg)self.pushButton_Smaller.clicked.connect(self.DoSmallerImg)self.pushButton_YuanTu.clicked.connect(self.DoYuanTuImg)self.imageNameList = []

4、运行结果

运行后就可以浏览图片、切换图片、放大缩小图片了。

使用PyQt5实现图片浏览器相关推荐

  1. 用PyQt实现简单的图片浏览器

    一,目标 ​实现简单的图片浏览器,有一个打开按钮,点击该按钮弹出选择窗口,在电脑磁盘中选择图片文件并打开 二,组件架构 QMainWindow |----QScrollArea (CentralWid ...

  2. 利用PyQt打造一款适合自己的图片浏览器

    电脑自带的图片浏览器,很好用,但不是万能的.现实中有各种特殊需求,因此有时为了方便,量身打造一款适合自己的图片浏览器可能是有必要的.各种特殊需求总是不一样的,我这儿的特殊需求就是:我有成百上千的图片需 ...

  3. linux 浏览器源码下载,Android开发:图片浏览器源码

    Android 图片浏览器源码,是你学习Android很好的例子,希望对你的学习有帮助. main.xml android:layout_width="fill_parent" a ...

  4. 在Ubuntu 16.04.1 LTS上安装XnView Multi Platform图片浏览器0.83

    XnView Multi Platform是一个全平台(Windows, Linux, Mac)下的全能图片工具,类似Windows平台的美图看看,阿香婆图片浏览器等等,效果非常赞,是我在Ubuntu ...

  5. 浏览器tab关闭事件_Python--使用Pyqt5实现简易浏览器(最新版本测试过)

    Python--使用Pyqt5实现简易浏览器(最新版本测试过) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 准备环境 首先我 ...

  6. javascript图片浏览器的核心——图片预加载

    网站开发时经常需要在某个页面需要实现对大量图片的浏览,如果考虑流量的话,大可以像pconline一样每个页面只显示一张图片,让用户每看一张图片就需要 重新下载一下整个页面.不过,在web2.0时代,更 ...

  7. 7.QML Qt Quick——基于Qt Quick Controls 2实现图片浏览器

    Qt Quick Controls 2提供了一组UI控件,例如按钮,标签,复选框,滑块等(用之查之即可).用于在Qt Quick中创建用户界面.UI控件很多,这里通过一个图片浏览器的实现来逐步讲解 图 ...

  8. java课程设计图片浏览器_java课程设计图片浏览器

    [实例简介] 图片浏览器最基本的功能是能浏览一个目录中的所有图片,并可以点击浏览上一张图片或者下一张图片,还有对图片放大与缩小,或者翻转图片等操作,在这里,实现了图片的浏览功能,导航功能(下一张.上一 ...

  9. 【Android 应用开发】AndroidUI设计 之 图片浏览器

    图片浏览器效果图 : 源码下载地址 : -- CSDN : http://download.csdn.net/detail/han1202012/6875083 -- GitHub : https:/ ...

最新文章

  1. AJAX ControlToolkit学习日志-ModalPopupExtender(16)
  2. 合并两个有序数组为一个新的有序数组
  3. Nginx限流-速率实现
  4. epub 阅读器_全球与中国EPUB阅读器市场深度调研分析报告
  5. 实例分割——转置卷积的学习笔记
  6. 使用thinkPhp,修改线上数据库的配置,请删除 Runtime 中的所有内容后重试
  7. Service Worker 全面进阶
  8. python 读grid 数据_jqGrid获取到python返回的Json数据,未能显示到页面上,为毛???...
  9. NI 视觉入门软件介绍
  10. cad缩小了怎么还原_CAD的窗口突然不能缩小了怎么回事,应该怎么恢复
  11. python获取usb扫描枪数据_Python - Re: 如何用Python接收扫描枪传来的信息数据
  12. linux系统安装firefox的flash player插件
  13. 不太会说话,怎样提高说话的技巧?
  14. |Boids|鸟群模型|鸟群算法|学习笔记 - 论文学习
  15. 如何将纯色背景的图片转换为背景透明的图片
  16. 使用WordPress搭建个人网站
  17. AI-040: Python深度学习3 - 三个Karas实例-2
  18. mysql 备用字段_MySql 命令大全(转载备用)
  19. linux 解压war包
  20. IntelliJ IDEA官网打不开的问题

热门文章

  1. glLoadIdentity()与glTranslatef()和glRotatef()--坐标变换
  2. BZOJ3098. Hash Killer II(生日攻击)
  3. pandas中的dropna()函数和np.dropna()函数
  4. vue h5判断安卓或IOS并打开APP
  5. c++关于eof()函数多读一行代码的解决方法
  6. 降维算法:主成分分析 VS 自动编码器
  7. 【笔记】范数:L1范数充当正则项,让模型获得稀疏解,解决过拟合问题
  8. ps怎么制作流体_怎么用PS制作液化流体渐变海报
  9. 爬朋友圈好友的个性签名,生成云图(下)
  10. 利用Idea生成的类图分析框架源码