码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 使用PyQt5创建图片查看器应用程序


    使用PyQt5创建图片查看器应用程序

    作者:安静到无声 个人主页

    在本教程中,我们将使用PyQt5库创建一个简单的图片查看器应用程序。这个应用程序可以显示一系列图片,并允许用户通过按钮切换、跳转到不同的图片。

    1. 准备工作

    首先,我们需要安装PyQt5库。打开终端或命令提示符,运行以下命令:

    pip install PyQt5
    
    • 1

    确保你已经安装了Python和pip,并且可以正常运行。

    2. 创建主程序

    创建一个名为 image_viewer.py 的Python文件,并将以下代码复制进去:

    import sys
    from PyQt5.QtWidgets import QApplication, QLabel, QMainWindow, QPushButton, QLineEdit
    from PyQt5.QtGui import QPixmap
    
    # 图片路径
    images = [
        'F:/BaiduSyncdisk/图片/n02009912_2248_Highgreen.JPEG',
        'F:/BaiduSyncdisk/图片/n02013706_161_Highgreen.JPEG',
        'F:/BaiduSyncdisk/图片/n02281787_2344_Highblue.JPEG',
        'F:/BaiduSyncdisk/图片/n02281787_2354_Highblue.JPEG'
    
    ]
    current_index = 0  # 当前显示的图片索引
    
    def show_image():
        pixmap = QPixmap(images[current_index])
        label.setPixmap(pixmap)
        label.resize(pixmap.width(), pixmap.height())
        filename_label.setText(f'文件名:{images[current_index]}')
    
    def next_image():
        global current_index
        current_index = (current_index + 1) % len(images)  # 循环切换到下一张图片
        show_image()
    
    def previous_image():
        global current_index
        current_index = (current_index - 1) % len(images)  # 循环切换到上一张图片
        show_image()
    
    def jump_to_image():
        global current_index
        index_str = input_box.text().strip()  # 获取输入框中的索引字符串
        if index_str.isdigit():  # 如果输入的是数字
            index = int(index_str) - 1  # 将索引转换为数字,并减去1(因为列表从0开始)
            if 0 <= index < len(images):  # 如果索引在图片列表范围内
                current_index = index  # 跳转到对应的图片
                show_image()
    
    app = QApplication(sys.argv)
    window = QMainWindow()
    window.setGeometry(200, 350, 500, 400)
    
    label = QLabel(window)
    label.setGeometry(130, 20, 100, 100)  # 调整位置和大小
    window.setWindowTitle('图片查看器')
    
    filename_label = QLabel(window)
    filename_label.setGeometry(100, 280, 380, 30)
    show_image()
    
    previous_button = QPushButton('上一张', window)
    previous_button.move(70, 320)
    previous_button.clicked.connect(previous_image)
    
    next_button = QPushButton('下一张', window)
    next_button.move(320, 320)
    next_button.clicked.connect(next_image)
    
    input_box = QLineEdit(window)
    input_box.move(200, 320)
    
    jump_button = QPushButton('跳转', window)
    jump_button.move(200, 360)
    jump_button.clicked.connect(jump_to_image)
    
    window.show()
    sys.exit(app.exec_())
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68

    这段代码定义了一个包含图片查看器功能的应用程序。具体来说,它使用了PyQt5库提供的各种小部件(widgets),比如QLabel、QMainWindow、QPushButton和QLineEdit等。

    3. 运行应用程序

    保存并运行 image_viewer.py 文件,你将看到一个简单的图片查看器应用程序界面。它显示了第一张图片,并且提供了上一张、下一张和跳转到指定图片的按钮。

    你可以点击相应的按钮来切换图片或跳转到指定的图片。图片的文件名也会显示在窗口的底部。
    在这里插入图片描述

    结论在这里插入图片描述

    在本教程中,我们使用PyQt5库创建了一个简单的图片查看器应用程序。这个应用程序可以帮助你浏览并切换不同的图片。

    你可以根据实际需求进一步扩展这个应用程序,比如添加更多的功能按钮、支持更多的图片格式等。

    希望本教程对你有所帮助!如果你有任何问题或疑问,请随时在评论区留言。


    推荐专栏

    💖模式识别与人工智能(程序与算法)

    机器学习MATLAB实现
    1. 机器学习MATLAB实现:Matalb-邻域平均法、均值滤波法、中值滤波法对图像进行平滑去噪_邻域平均滤波
    2. 机器学习MATLAB实现:MATLAB-直方图均衡化_matlab直方图均衡化
    3. 机器学习MATLAB实现:基于DCT变换的JPEG图像压缩_dct变换图像压缩
    4. 机器学习MATLAB实现:Matalb-图像均值滤波,中值滤波,梯度锐化(sobel算子)的实现_matlab sobel滤波
    5. 机器学习MATLAB实现:Matlab-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化
    深度学习
    1. 深度学习调参经验:优化神经网络性能的关键八大步骤
    Python示例
    1. Python代码示例:将一个文件夹中未标记的文件复制到另一个文件夹

    2. Python代码示例:比较两个文件夹中的文件名并打印相同的文件

    3. Python代码示例:使用Pillow库轻松实现图像尺寸调整——>使每个图像具有相同的大小,方便模型处理和训练_pillow 获取图片尺寸_安静到无声的博客-CSDN博客

    4. Python代码示例:求取文件夹下图片的均值与方差——>消除异常数据,保证所有像素值都处于比较合理的范围,提高模型的性能。_安静到无声的博客-CSDN博客

    5. Python代码示例:使用Python的Pillow库对图片进行格式转换和重命名

    6. Python代码示例:利用Python代码批量修改文件名_批量修改文件名

    7. Python代码示例:遍历文本文件中的图片信息并复制图片

    8. Python代码示例:Python实现Imagenet数据集的合并和拆分

    9. Python代码示例:AI助手帮你轻松做好Imagenet数据集重命名与复制

    10. Python代码示例:python实现获取当前目录下的树形结构_python 读取目录结构

    11. Python代码示例:使用ChatGPT快速实现灰度和RGBA图片转换为RGB三通道图片的Python数据清洗demo_python rgba转rgb

    12. Python代码示例:如何将通过Image.open读出的图片从单通道->三通道

    13. 用Python对文件夹下的图片命名进行批量更改_python修改图片名

    14. Python代码示例:爬取网站图片

    15. Python代码示例:Python中的列表推导式(List Comprehensions)及其条件筛选法_python 列表推导式多个条件

    Opencv-python教程
    1. Opencv-python教程:python-opencv(1)图像的基础操作
    2. Opencv-python教程:python-opencv(2)图像运算
    3. Opencv-python教程:python-opencv(3)图像类型转换
    4. Opencv-python教程:python-opencv(4)–几何变换
    5. Opencv-python教程:python-opencv(10)图像金字塔
    6. Opencv-python教程:python-opencv(11)图像轮廓
    7. Opencv-python教程:python-opencv(12)直方图
    8. Opencv-python教程:python-opencv(13)傅里叶变换
    模式识别与机器学习(Python实现)
    1. 模式识别与机器学习(Python实现):基于sklearn朴素贝叶斯模型和pazen窗方法实现男女分类
    2. 模式识别与机器学习(Python实现):基于贝叶斯判决皮肤检测的简单实现
    3. 模式识别与机器学习(Python实现):基于PCA降维和KNN分类的人脸识别
    4. 模式识别与机器学习(Python实现):基于PCA–LDA的人脸识别
    5. 模式识别与机器学习(Python实现):基于聚类的图片分割
    6. 模式识别与机器学习(Python实现):决策树分男女
    7. 模式识别与机器学习(Python实现):基于压缩近邻法的分类问题
    8. 模式识别与机器学习(Python实现):如何用MCMC产生任意的概率分布随机数?Python简单实现
    Tensorflow学习

    Tensorflow1.x

    1. Tensorflow1.x:tf中tensor和numpy
    2. Tensorflow1.x:tf.Variable中trainable作用
    3. Tensorflow1.x:tesorflow 计算模型复杂度
    4. Tensorflow1.x:L2正则化和collection【tf.GraphKeys】
    5. Tensorflow1.x:Tensorflow 变量及共享变量

    Tensorflow2.x

    1. Tensorflow2.x:创建keras环境步骤
    2. Tensorflow2.x:tensorflow2.0 深度学习基础和tf.keras
    3. Tensorflow2.x:tensorflow2.0 卷积神经网络的实现实例(卫星与湖)
    4. Tensorflow2.x:tensorflow2.0 tf.keras序列问题
    5. Tensorflow2.x:tensorflow2.0 实例猫狗识别(1)
    6. Tensorflow2.x:tensorflow2.0 eager模式与自定义训练网络
    7. Tensorflow2.x:tensorflow2.0 tf.keras猫狗识别(2)—自定义训练
    8. Tensorflow2.x:tebsorflow2.0 使用Keras编写自定义图层和模型
    9. Tensorflow2.x:tebsorflow2.0 多输出模型实例
    10. Tensorflow2.x:tebsorflow2.0 图像定位+分类(Oxford-IIIT数据集)
    11. Tensorflow2.x:tebsorflow2.0 图像语义分割(Oxford-IIIT数据集)
    Python语法
    1. Python语法:Python中hasattr的具体用法
    2. Python语法:python中的语法使用(easydict set() plt.subplots() assert)
    3. Python语法:os.path库常用函数的使用_标准库os.path中的函数用来获取参数指定
    4. Python语法:argparse使用方法简单总结_python的argparse用法
    5. Python语法:python __all__含义
    6. Python语法:numpy方法积累
    7. Python语法:如何优雅的学习的getattr()函数
    8. 如何在pycharm中指定GPU
    Pytorch语法
    1. Pytorch语法:pack_padded_sequence用法与完整示例
    2. Pytorch语法:pytorch中的torch.manual_seed()
    3. Pytorch语法:torch.autograd.Function 学习理解
    4. Pytorch语法:为什么设置cudnn.benchmark = True
    5. Pytorch语法:pytorch权重初始化_pytorch 权重初始化
    6. Pytorch语法:pytorch使用方法积累
    7. Pytorch语法:如何用Pytorch加载部分权重
    数据集使用
    1. pycocotools数据集讲解、安装与使用_安静到无声的博客-CSDN博客
    Linux调试
    1. Linux调试:更改CUDA版本<此博文仅供自己参考>_cuda怎么改版本
    2. Linux调试:linux操作命令_vi train.py
    3. Linux调试:如何优雅的解决Pycharm在jupyter notebook的Port问题
    4. Linux调试:如何优雅的在linux下对指定文件夹解压_linux解压单个文件
    5. Linux调试:Linux下文件夹的移动与复制_linux 复制整个文件夹
    6. Linux调试:如何优雅的使用GPU监控
    7. Linux调试:如何在远程服务器下运行tensorboard,并在本地服务器看运行情况
    Bug调试
    1. Bug调试:成功解决OSError: [E050] Can’t find model ‘en_core_web_sm’._
    2. Bug调试:成功解决Resource punkt not found错误
    3. Bug调试:成功解决NLTK包的安装错误
    4. Bug调试:成功解决http.client.RemoteDisconnected: Remote end closed connection without response
    5. 成功解决:ValueError Cannot assign non-leaf Tensor to parameter ‘weight‘.md
    6. 成功解决AttributeError: module ‘torch.distributed‘ has no attribute ‘all_gather_base‘
    7. 成功解决ImportError: /home/mona/research/code/frankmocap/detectors/hand_object_detector/lib/model/C.cpy
    8. 成功解决安装spacy==2.x出现的问题:功解决sre_constants.error: bad escape \p at position 173-CSDN博客
    9. 成功解决安装spacy==2.x出现的问题:OSError: E050] Can‘t find model ‘en_core_web_sm‘. It doesn‘t seem to be …_
    其他
    1. 常用的水下图像数据集
    2. “微天气” - 一个基于微信小程序的智能天气预报体验_天气预报小程序开发
  • 相关阅读:
    SSM+Vue+Element-UI实现员工工资管理系统
    大华智慧园区前台任意文件上传(1day)
    小程序游戏、App游戏与H5游戏:三种不同的游戏开发与体验方式
    java-net-php-python-springboot社区志愿者管理系统计算机毕业设计程序
    CSS学习笔记(三)
    开开心心带你学习MySQL数据库之第六篇下
    NFT Insider #72:The Sandbox 阿尔法第三季正式启动,耐克NFT已产生超过1.85亿美元的收入
    使用快解析搭建自己的minecraft服务器
    架构体系-黑马学习2:-业务幂等性技术架构体系(1)
    【JavaEE】MyBatis 动态SQL 使用讲解
  • 原文地址:https://blog.csdn.net/lihuanyu520/article/details/133811841
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号