最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PyQt5實(shí)現(xiàn)多張圖片顯示并滾動(dòng)

 更新時(shí)間:2021年06月10日 16:20:21   作者:ttphoon  
最近要做個(gè)網(wǎng)頁(yè)圖片批量下載工具,然后需要一個(gè)頁(yè)面顯示網(wǎng)頁(yè)上的所有圖片供用戶(hù)勾選,再根據(jù)勾選的內(nèi)容來(lái)下載指定圖片,其中就涉及到要到同時(shí)顯示多張圖片,本文就來(lái)介紹一下

最近要做個(gè)網(wǎng)頁(yè)圖片批量下載工具,然后需要一個(gè)頁(yè)面顯示網(wǎng)頁(yè)上的所有圖片供用戶(hù)勾選,再根據(jù)勾選的內(nèi)容來(lái)下載指定圖片,其中就涉及到要到同時(shí)顯示多張圖片。

單頁(yè)面顯示多張圖片

習(xí)慣性的用GridLayout但是發(fā)現(xiàn)怎么長(zhǎng)時(shí)間解決都無(wú)法實(shí)現(xiàn)滾動(dòng),這樣就會(huì)強(qiáng)制壓縮圖片大小,導(dǎo)致圖片較多時(shí)顯示的圖片太小,不是我想要的,后面網(wǎng)上借鑒了一下用了ScrollArea實(shí)現(xiàn)了

代碼如下:

import sys
import requests
from PyQt5.QtWidgets import (QWidget,  QLabel,QVBoxLayout,QCheckBox,QGridLayout, QScrollArea,QApplication)
from PyQt5.QtGui import  QPixmap
from PyQt5.QtCore import Qt,QSize

class 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_())

效果如下:

在這里插入圖片描述

其中要計(jì)算好QWdiget的高度才能滾動(dòng),不然會(huì)發(fā)現(xiàn)可滾動(dòng)的不足導(dǎo)致部分看不到或者滾動(dòng)太多導(dǎo)致部分空白,都不好看。

到此這篇關(guān)于PyQt5實(shí)現(xiàn)多張圖片顯示并滾動(dòng)的文章就介紹到這了,更多相關(guān)PyQt5 圖片顯示滾動(dòng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python的NLTK模塊詳細(xì)介紹與實(shí)戰(zhàn)案例

    Python的NLTK模塊詳細(xì)介紹與實(shí)戰(zhàn)案例

    自然語(yǔ)言處理庫(kù)NLTK在Python中的應(yīng)用廣泛,提供了分詞、詞性標(biāo)注、句法分析等多種功能,本文介紹了NLTK的核心功能、基本概念以及通過(guò)具體實(shí)戰(zhàn)案例(如文本分詞、去除停用詞、詞干提取等)展示了其在NLP任務(wù)中的實(shí)際應(yīng)用
    2024-09-09
  • 利用python判斷字母大小寫(xiě)的幾種方法小結(jié)

    利用python判斷字母大小寫(xiě)的幾種方法小結(jié)

    在開(kāi)發(fā)過(guò)程中有時(shí)候我們需要判斷一個(gè)字符串是否是小寫(xiě)形式,下面這篇文章主要給大家介紹了關(guān)于利用python判斷字母大小寫(xiě)的幾種方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • wxpython中Textctrl回車(chē)事件無(wú)效的解決方法

    wxpython中Textctrl回車(chē)事件無(wú)效的解決方法

    這篇文章主要介紹了wxpython中Textctrl回車(chē)事件無(wú)效的解決方法,較為詳細(xì)的分析了TextCtrl支持的事件類(lèi)型,并給出了TextCtrl綁定回車(chē)事件的相應(yīng)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-07-07
  • Python結(jié)合百度語(yǔ)音識(shí)別實(shí)現(xiàn)實(shí)時(shí)翻譯軟件的實(shí)現(xiàn)

    Python結(jié)合百度語(yǔ)音識(shí)別實(shí)現(xiàn)實(shí)時(shí)翻譯軟件的實(shí)現(xiàn)

    這篇文章主要介紹了Python結(jié)合百度語(yǔ)音識(shí)別實(shí)現(xiàn)實(shí)時(shí)翻譯軟件的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Python的MongoDB模塊PyMongo操作方法集錦

    Python的MongoDB模塊PyMongo操作方法集錦

    這篇文章主要介紹了Python的MongoDB模塊PyMongo操作方法集錦,包括數(shù)據(jù)的增刪查改以及索引等相關(guān)的基本操作,需要的朋友可以參考下
    2016-01-01
  • 使用Python將PDF表格提取到文本,CSV和Excel文件中

    使用Python將PDF表格提取到文本,CSV和Excel文件中

    本文將介紹如何使用簡(jiǎn)單的Python代碼從PDF文檔中提取表格數(shù)據(jù)并將其寫(xiě)入文本、CSV和Excel文件,從而輕松實(shí)現(xiàn)PDF表格的自動(dòng)化提取,有需要的可以參考下
    2024-11-11
  • Pandas DataFrame中實(shí)現(xiàn)取單個(gè)值的讀取和修改

    Pandas DataFrame中實(shí)現(xiàn)取單個(gè)值的讀取和修改

    這篇文章主要介紹了Pandas DataFrame中實(shí)現(xiàn)取單個(gè)值的讀取和修改,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • python爬蟲(chóng)教程之bs4解析和xpath解析詳解

    python爬蟲(chóng)教程之bs4解析和xpath解析詳解

    這篇文章主要給大家介紹了關(guān)于python爬蟲(chóng)教程之bs4解析和xpath解析的相關(guān)資料,bs4、xpath比較容易上手但是功能有限,正則比較晦澀難懂但是功能超級(jí)強(qiáng)大,需要的朋友可以參考下
    2022-02-02
  • python3.5 + PyQt5 +Eric6 實(shí)現(xiàn)的一個(gè)計(jì)算器代碼

    python3.5 + PyQt5 +Eric6 實(shí)現(xiàn)的一個(gè)計(jì)算器代碼

    這篇文章主要介紹了python3.5 + PyQt5 +Eric6 實(shí)現(xiàn)的一個(gè)計(jì)算器代碼,在windows7 32位系統(tǒng)可以完美運(yùn)行 計(jì)算器,有興趣的可以了解一下。
    2017-03-03
  • Python實(shí)現(xiàn)多線程的兩種方式分析

    Python實(shí)現(xiàn)多線程的兩種方式分析

    這篇文章主要介紹了Python實(shí)現(xiàn)多線程的兩種方式,結(jié)合實(shí)例形式分析了通過(guò)自定義函數(shù)傳遞Thread對(duì)象以及繼承Thread類(lèi)兩種多線程實(shí)現(xiàn)方式相關(guān)操作技巧,需要的朋友可以參考下
    2018-08-08

最新評(píng)論

天全县| 威信县| 南丰县| 江永县| 泌阳县| 闸北区| 清涧县| 平邑县| 康保县| 五台县| 大丰市| 柘城县| 阿勒泰市| 房山区| 当阳市| 木兰县| 奉化市| 青州市| 南部县| 吐鲁番市| 临沭县| 淮北市| 阳山县| 田林县| 广东省| 普格县| 贵溪市| 达拉特旗| 沁阳市| 青州市| 忻州市| 织金县| 云梦县| 清徐县| 鸡泽县| 台中县| 龙陵县| 五大连池市| 四川省| 镇江市| 汉川市|