iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >PyQt5如何实现多张图片显示并滚动
  • 917
分享到

PyQt5如何实现多张图片显示并滚动

2023-06-15 10:06:19 917人浏览 八月长安
摘要

这篇文章主要为大家展示了“PyQt5如何实现多张图片显示并滚动”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“PyQt5如何实现多张图片显示并滚动”这篇文章吧。单页面显示多张图片习惯性的用Grid

这篇文章主要为大家展示了“PyQt5如何实现多张图片显示并滚动”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“PyQt5如何实现多张图片显示并滚动”这篇文章吧。

单页面显示多张图片

习惯性的用GridLayout但是发现怎么长时间解决都无法实现滚动,这样就会强制压缩图片大小,导致图片较多时显示的图片太小,不是我想要的,后面网上借鉴了一下用了ScrollArea实现了

代码如下:

import sysimport requestsfrom PyQt5.QtWidgets import (QWidget,  QLabel,QVBoxLayout,QCheckBox,QGridLayout, QScrollArea,QApplication)from PyQt5.QtGui import  QPixmapfrom PyQt5.QtCore import Qt,QSizeclass Picture(QWidget):    def __init__(self, parent=None, url=None):        super().__init__(parent)        self.url = url        self.ui()    def ui(self):        self.setFixedSize(850,600)        layout = QGridLayout()        total = len(self.url)        self.setLayout(layout)        self.sc = QScrollArea(self)        self.qw = QWidget()        if total % 5 == 0:            rows = int(total/5)        else:            rows = int(total/5) + 1        self.qw.setMinimumSize(850,230*rows)        for i in  range(total):            pre_url = self.url[i].split("?")[0]            sup = pre_url.split(".")[-1]            req = requests.get(self.url[i])            photo = QPixmap()            photo.loadFromData(req.content)            width = photo.width()            height = photo.height()            if width==0 or height==0:                continue            tmp_image = photo.toImage()            size = QSize(width,height)            photo.convertFromImage(tmp_image.scaled(size, Qt.IgnoreAspectRatio))            tmp = QWidget(self.qw)            vl = QVBoxLayout()            label= QLabel()            label.setFixedSize(150,200)            label.setStyleSheet("border:1px solid gray")            label.setPixmap(photo)            label.setScaledContents(True)            ck = QCheckBox(str(i)+"."+sup+"("+str(width)+"x"+str(height)+")", self)            vl.addWidget(label)            vl.addWidget(ck)            tmp.setLayout(vl)            tmp.move(160 * (i % 5), 230 * int(i / 5))        self.sc.setWidget(self.qw)if __name__ == '__main__':    app = QApplication(sys.argv)    url=['https://pic2.zhimg.com/aadd7b895_xs.jpg?source=1940ef5c', 'Https://pic2.zhimg.com/50/v2-60f7b5c071d378a34a3a6c489c3fdacc_hd.jpg?source=1940ef5c', 'https://pic2.zhimg.com/80/v2-60f7b5c071d378a34a3a6c489c3fdacc_720w.jpg?source=1940ef5c', 'https://pic1.zhimg.com/50/v2-aa7d74fe48183D16a571278a012ff759_hd.jpg?source=1940ef5c', 'https://pic4.zhimg.com/50/v2-011ac12cbfe61ebc411ba437fac88780_hd.jpg?source=1940ef5c', 'https://pic1.zhimg.com/50/v2-dea9876e70b0a0b08b635796eb2c86da_hd.jpg?source=1940ef5c', 'https://pic2.zhimg.com/50/v2-8574116f58ac5e560da7e3656f80dcdf_hd.jpg?source=1940ef5c', 'https://pic1.zhimg.com/80/v2-10e18ff65a640175ad058b4b5dfd2867_1440w.png', 'https://picb.zhimg.com/80/v2-a448b133c0201b59631ccfa93cb650f3_1440w.png', 'https://pic2.zhimg.com/v2-0cd41264be96353da10f5aca4088aa37_xs.jpg?source=1940ef5c', 'https://pic2.zhimg.com/50/v2-74c0b99f286ef52fefe4fd0cbe78c90b_hd.jpg?source=1940ef5c', 'https://pic1.zhimg.com/50/v2-27b377ed5db6b090a9834b00ffe54b8e_hd.jpg?source=1940ef5c', 'https://pic1.zhimg.com/50/v2-c7c874b8540a5dbdd93418429c39f188_hd.jpg?source=1940ef5c', 'https://pic4.zhimg.com/50/v2-fef58d7f36acb12ff4199fa507fc166e_hd.jpg?source=1940ef5c', 'https://pic1.zhimg.com/50/v2-fcd8d49f62634cb631ac08d5d1cc11ea_hd.jpg?source=1940ef5c', 'https://pic1.zhimg.com/50/v2-74fe1b6d5362b73fcfe5b887afcad6eb_hd.jpg?source=1940ef5c', 'https://pic2.zhimg.com/50/v2-6b6213d9a94f57722642b6bed847c6a2_hd.jpg?source=1940ef5c', 'https://pic1.zhimg.com/50/v2-bad7183c3135ea26d2e8e52653ee1f1c_hd.jpg?source=1940ef5c', 'https://pic2.zhimg.com/50/v2-476f50c384e1a4c90e994e6d63f63e8a_hd.jpg?source=1940ef5c', 'https://pic1.zhimg.com/50/v2-d720e9f8984d83da0a7344fa842cafa1_hd.jpg?source=1940ef5c', 'https://pic1.zhimg.com/50/v2-e82f6e26e7b49d7d7a5a0a337e2cd613_hd.jpg?source=1940ef5c', 'https://pic4.zhimg.com/50/v2-25496d917bf08c0ebc5106bb91f376a5_hd.jpg?source=1940ef5c', 'https://pic1.zhimg.com/50/v2-36e309f84b1395933488e6fa0f6bd341_hd.jpg?source=1940ef5c', 'https://pic1.zhimg.com/80/v2-10e18ff65a640175ad058b4b5dfd2867_1440w.png', 'https://picb.zhimg.com/80/v2-a448b133c0201b59631ccfa93cb650f3_1440w.png', 'https://pic3.zhimg.com/aadd7b895_xs.jpg?source=1940ef5c', 'https://pic1.zhimg.com/50/v2-c673663f10a662afc4a09dfe0d95c62c_hd.jpg?source=1940ef5c', 'https://pic4.zhimg.com/50/v2-891dd82d13e152e6204a827362adb0ef_hd.jpg?source=1940ef5c', 'https://pic3.zhimg.com/50/v2-dba8ca86ac6aa7c8517d22ee983c6e05_hd.jpg?source=1940ef5c', 'https://pic1.zhimg.com/50/v2-f16d5a24150db2816817fa698ac4ad82_hd.jpg?source=1940ef5c', 'https://pic1.zhimg.com/80/v2-10e18ff65a640175ad058b4b5dfd2867_1440w.png', 'https://picb.zhimg.com/80/v2-a448b133c0201b59631ccfa93cb650f3_1440w.png', 'https://static.zhihu.com/heifetz/assets/sidebar-download-qrcode.7caef4dd.png', 'https://pic1.zhimg.com/70/v2-8228fff23c22a72b57d1627b7213942c.jpg', 'https://pic2.zhimg.com/aadd7b895_im.jpg?source=1940ef5c', 'https://pic3.zhimg.com/90/v2-426097a9370aad0ab673d53cca060c93_250x0.jpg', 'https://pic2.zhimg.com/90/v2-18b57487b9aca2b8e12246f67be0d138_250x0.jpg', 'https://pic2.zhimg.com/90/v2-50f7c79c972342024947936b0420b8e4_250x0.jpg', 'https://pic4.zhimg.com/v2-1945b21d09872d21de3db9c9614918b3_540x450.jpeg', 'https://pic3.zhimg.com/80/v2-d0289dc0a46fc5b15b3363ffa78cf6c7.png']    pic = Picture(url=url)    pic.show()    sys.exit(app.exec_())

效果如下:

PyQt5如何实现多张图片显示并滚动

其中要计算好QWdiget的高度才能滚动,不然会发现可滚动的不足导致部分看不到或者滚动太多导致部分空白,都不好看。

以上是“PyQt5如何实现多张图片显示并滚动”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: PyQt5如何实现多张图片显示并滚动

本文链接: https://www.lsjlt.com/news/279958.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PyQt5实现多张图片显示并滚动
    最近要做个网页图片批量下载工具,然后需要一个页面显示网页上的所有图片供用户勾选,再根据勾选的内容来下载指定图片,其中就涉及到要到同时显示多张图片。 单页面显示多张图片 习惯性的用Gr...
    99+
    2024-04-02
  • PyQt5如何实现多张图片显示并滚动
    这篇文章主要为大家展示了“PyQt5如何实现多张图片显示并滚动”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“PyQt5如何实现多张图片显示并滚动”这篇文章吧。单页面显示多张图片习惯性的用Grid...
    99+
    2023-06-15
  • c++结合opencv如何实现读取多张图片并显示
    目录方法一方法二方法三方法一 主要函数 void cv::glob(String pattern,std::vector<string>&result,bool ...
    99+
    2022-11-13
    c++结合opencv opencv读取多张图片 opencv图片显示
  • css如何实现多张图片横向居中显示
    这篇文章将为大家详细讲解有关css如何实现多张图片横向居中显示,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。代码实现HTML部分   <div class=&...
    99+
    2023-06-08
  • c++怎么结合opencv实现读取多张图片并显示
    这篇文章主要介绍“c++怎么结合opencv实现读取多张图片并显示”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“c++怎么结合opencv实现读取多张图片并显示”文章能帮助大家解决问题。方法一主要函...
    99+
    2023-07-04
  • C#实现合并多张图片为GIF动态图
    目录文章描述开发环境开发工具实现代码实现效果代码解析文章描述 在前一篇写了如何将一张GIF动态图分解成一帧一帧的图片,这一篇我们就把喝进去的一瓢水给还回去。即把一张又一张的图片去拼合...
    99+
    2022-12-15
    C#合并图片为gif C#合并图片 C# gif
  • Python如何实现合并多张图片成视频
    本篇内容介绍了“Python如何实现合并多张图片成视频”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!合并多张图片到视频的方法说明除了使用 O...
    99+
    2023-07-05
  • Python如何实现多张图片合成一张马赛克图片
    这篇文章将为大家详细讲解有关Python如何实现多张图片合成一张马赛克图片,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。图片素材4K高清原图开发环境Python 3.6Pycharm实现代码先导入所需模块...
    99+
    2023-06-22
  • Python如何合并多张图片成PDF
    小编给大家分享一下Python如何合并多张图片成PDF,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!过程拿到一个需求最重要的就是将大块任务拆分成一个个小模块,逐个...
    99+
    2023-06-15
  • PyQt5如何实现将Matplotlib图像嵌入到Scoll Area中显示滚动条效果
    这篇文章将为大家详细讲解有关PyQt5如何实现将Matplotlib图像嵌入到Scoll Area中显示滚动条效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言如题目所述,又是花费了两天的时间实现了该...
    99+
    2023-06-15
  • Python实现合并多张图片成视频的示例详解
    目录合并多张图片到视频的方法说明moviepy 将多张图片合成视频导入所需模块创建 ImageSequenceClip 对象保存视频moviepy 合成多张图片更多配置名词解释FFm...
    99+
    2023-02-01
    Python合并图片成视频 Python合并图片 Python 图片 视频
  • php如何实现图片查询并显示功能
    本篇内容介绍了“php如何实现图片查询并显示功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.建立数据库和数据表首先,我们需要在MySQ...
    99+
    2023-07-05
  • PyQt5实现将Matplotlib图像嵌入到Scoll Area中显示滚动条效果
    目录前言一、解决步骤1.1 qt designer1.2 pycharm编写程序总结前言 如题目所述,又是花费了两天的时间实现了该功能,本来今天下午有些心灰意冷,打算放弃嵌入到Sc...
    99+
    2024-04-02
  • Jquery实现图片左右自动滚动示例
    复制代码 代码如下: <!DOCTYPE HTML> <html> <head> <title>基于jQuery的控制左右滚动效果_自...
    99+
    2022-11-15
    图片左右滚动 自动滚动
  • Android实现多张图片合成加载动画
    本文实例为大家分享了Android实现多张图片合成加载动画的具体代码,供大家参考,具体内容如下 1、自定义ProgressDialog public class MyProgress...
    99+
    2024-04-02
  • PHP如何实现多张图片上传功能
    这篇文章主要介绍“PHP如何实现多张图片上传功能”,在日常操作中,相信很多人在PHP如何实现多张图片上传功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP如何实现多张图片上传功能”的疑惑有所帮助!接下来...
    99+
    2023-07-02
  • 基于Python如何实现合并多张图片转成mp4视频
    这篇文章主要介绍“基于Python如何实现合并多张图片转成mp4视频”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“基于Python如何实现合并多张图片转成mp4视频”文章能帮助大家解决问题。一、需要...
    99+
    2023-07-06
  • jquery如何实现多次上传同一张图片
    这篇文章将为大家详细讲解有关jquery如何实现多次上传同一张图片,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。代码如下$('input[type=file]&#...
    99+
    2024-04-02
  • js使用Canvas将多张图片合并成一张的实现代码
    解决方案 function mergeImgs(list) { const imgDom = document.createElement('img') document.b...
    99+
    2024-04-02
  • java怎么实现图片上传并显示
    在Java中实现图片上传并显示的一种常见的方法是使用Servlet和JSP。下面是一个简单的示例代码: 创建一个Servlet类来...
    99+
    2023-10-24
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作