好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > PyQt5入門之基于QListWidget版本實現圖片縮略圖列表功能

PyQt5入門之基于QListWidget版本實現圖片縮略圖列表功能

熱門標簽:湛江電銷防封卡 徐州天音防封電銷卡 電話機器人適用業務 鄭州智能外呼系統運營商 獲客智能電銷機器人 佛山防封外呼系統收費 南昌辦理400電話怎么安裝 不錯的400電話辦理 哈爾濱外呼系統代理商

需求描述

最近在寫一個圖像標注小工具,其中需要用到一個縮略圖列表,來查看文件夾內的圖片文件。

這里整理一個基于QListWidget實現的版本,簡單可用。

示例效果

代碼示例

QListWidget官方文檔:[link]

其中,需要用到的QListWidget信號:

itemSelectionChanged:所選項發生變化時發送。

先定義縮略圖列表部分,繼承自QListWidget。每個QListWidgetItem可以設置QIcon圖片和文本。

import os
from qtpy.QtCore import QSize
from qtpy.QtGui import QIcon,QPixmap
from PyQt5.QtWidgets import QListWidget,QListWidgetItem,QListView,QWidget,QApplication,QHBoxLayout,QLabel

class ImageListWidget(QListWidget):
    def __init__(self):
        super(ImageListWidget, self).__init__()
        self.setFlow(QListView.Flow(1))#0: left to right,1: top to bottom
        self.setIconSize(QSize(150,100))

    def add_image_items(self,image_paths=[]):
        for img_path in image_paths:
            if os.path.isfile(img_path):
                img_name = os.path.basename(img_path)
                item = QListWidgetItem(QIcon(img_path),img_name)
                # item.setText(img_name)
                # item.setIcon(QIcon(img_path))
                self.addItem(item)

再來簡單布局下窗體控件:

左邊區域用QLabel加載圖像,右邊區域是圖片縮略圖列表,點擊縮略圖,可以在左邊查看大圖。

class ImageViewerWidget(QWidget):
    def __init__(self):
        super(QWidget, self).__init__()
        # 顯示控件
        self.list_widget = ImageListWidget()
        self.list_widget.setMinimumWidth(200)
        self.show_label = QLabel(self)
        self.show_label.setFixedSize(600,400)
        self.image_paths = []
        self.currentImgIdx = 0
        self.currentImg = None

        # 水平布局
        self.layout = QHBoxLayout(self)
        self.layout.addWidget(self.show_label)
        self.layout.addWidget(self.list_widget)

        # 信號與連接
        self.list_widget.itemSelectionChanged.connect(self.loadImage)

    def load_from_paths(self,img_paths=[]):
        self.image_paths = img_paths
        self.list_widget.add_image_items(img_paths)

    def loadImage(self):
        self.currentImgIdx = self.list_widget.currentIndex().row()
        if self.currentImgIdx in range(len(self.image_paths)):
            self.currentImg = QPixmap(self.image_paths[self.currentImgIdx]).scaledToHeight(400)
            self.show_label.setPixmap(self.currentImg)

加載一些圖片路徑,并運行窗口:

if __name__=="__main__":
    import sys
    app = QApplication(sys.argv)

    # 圖像路徑
    img_dir = r"E:\Pic"
    filenames = os.listdir(img_dir)
    img_paths=[]
    for file in filenames:
        if file[-4:]==".png" or file[-4:]==".jpg":
            img_paths.append(os.path.join(img_dir,file))

    # 顯示控件
    main_widget = ImageViewerWidget()
    main_widget.load_from_paths(img_paths)
    main_widget.setWindowTitle("ImageViewer")
    main_widget.show()

    # 應用程序運行
    sys.exit(app.exec_())

小結

  • 上面代碼只是一個實現思路,實際應用中最好另開一個線程加載圖片,并且隨著滾動條下拉,再不斷加載緩存。
  • QListWidget可以實現簡單的圖標+文字列表,如果列表項中涉及自定義控件和其他操作邏輯,建議采用QListView和Model實現。

到此這篇關于PyQt5入門之QListWidget實現圖片縮略圖列表功能的文章就介紹到這了,更多相關PyQt5 QListWidget圖片縮略圖內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • pyqt5 QListWidget的用法解析
  • PyQt5 在QListWidget自定義Item的操作
  • PyQt5 QListWidget選擇多項并返回的實例

標簽:安康 蘭州 紹興 廣西 呂梁 蕪湖 吉安 懷化

巨人網絡通訊聲明:本文標題《PyQt5入門之基于QListWidget版本實現圖片縮略圖列表功能》,本文關鍵詞  PyQt5,入門,之,基于,QListWidget,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PyQt5入門之基于QListWidget版本實現圖片縮略圖列表功能》相關的同類信息!
  • 本頁收集關于PyQt5入門之基于QListWidget版本實現圖片縮略圖列表功能的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 操老女人逼视频| 欧美一区二区喷水白浆视频 | 掀起礼服后摆挺入| 欧美一级A片在免费看| 麻豆国产91?在线播放| 免费韩漫无羞遮无删减漫画网站| 明撩暗恋| 国产高清无线码2024| 久久不卡精品| 国产免费拔擦拔擦8x高清在线| 亚洲国产精品自在自线观看| 成品网站图片大全| 女人的逼照片| 二次元美女全身解开内衣大胸| 艾草96精品视频在线观看| 女人?精69XXXⅩXX直播| 久久美女视频| 一级视频片| 背德乱辈伦中文字幕日韩电影片| 中文字幕人成乱码熟女香港| 99久久国产精品免费制片| 露脸的极品国产系列| 国内外成人免费在线视频| 男人舔女人视频| 久久综合九色综合国产精品| 体内s尿高h调教| 妇乱子伦激情| 国产精品久久久久久麻豆一区| 久久久久久久精品妇女影视| 快点h| 三级伦理电影在线播放| 欧美人与zoxxxx另类| eeuss鲁片一区二区三区| 嗯~好大?用力?深一点孕妇| 美女裸体被?羞羞小视频| 爱情岛论坛亚洲品质自拍网址大全| 免费日批| 黑人的太大太爽了我受不了了 | 巜女学生痴汉电车成瘾HD| 国产a久久秘?麻豆入口红豆| 亚洲午夜小视频|