当前位置: 首页 > wzjs >正文

网站基本信息设置网站关键词快速排名技术

网站基本信息设置,网站关键词快速排名技术,德格网站建设,什么浏览器可以看任何网站加载本地大图片会有卡顿现象,因为imageLabel是同步加载 imageLabelQt小组件 - 3 imageLabel Qt小组件 - 2(布局)瀑布流布局,GridLayout,FlowLayout LoadImageThread最好使用线程池代替否则创建线程过多阻碍主线程刷新…

加载本地大图片会有卡顿现象,因为imageLabel是同步加载

imageLabelQt小组件 - 3 imageLabel

Qt小组件 - 2(布局)瀑布流布局,GridLayout,FlowLayout

LoadImageThread最好使用线程池代替否则创建线程过多阻碍主线程刷新

# coding: utf-8
import sys
from pathlib import Path
from typing import List, Unionfrom PySide6.QtCore import QRect, QThread, Signal, Qt, QThreadPool, QTimer
from PySide6.QtGui import QImage, QPixmap
from PySide6.QtWidgets import QVBoxLayout, QApplication, QScrollArea, QWidgetfrom components import ImageLabel, WaterfallLayoutclass LoadImageThread(QThread):loadSignal = Signal(QImage)def __init__(self, parent=None):super().__init__(parent)self.url = Nonedef run(self):if not self.url:returnif isinstance(self.url, (str, Path)):url = str(self.url)image = QImage(url)else:image = self.urlself.loadSignal.emit(image)def setUrl(self, url):self.url = urlself.start()class LazyLoadThread(QThread):loadSignal = Signal(object, object)def __init__(self, parent=None):super().__init__(parent)self.isStopped = Falseself.rect = QRect()self.labels = []  # type: List[LazyLoadImage]def run(self):try:self.verify()except Exception as e:print(e)def setData(self, rect: QRect, labels: List['LazyLoadImage']):self.rect = rectself.labels = labelsself.start()def verify(self):viewport_rect: QRect = self.rectfor item in self.labels:item_rect = item.geometry()if viewport_rect.intersects(item_rect):self.loadSignal.emit(item, True)else:self.loadSignal.emit(item, False)def stop(self):self.isStopped = Trueself.terminate()class LazyLoadImage(ImageLabel):def _postInit(self):self.dataSource = Noneself.loadThread = LoadImageThread(self)self.loadThread.loadSignal.connect(self.setImage)self.finished.connect(self.on_finished)def setDataSource(self, source: str):self.dataSource = sourcedef setImageUrl(self, url: str):self.loadThread.setUrl(url)def setLoading(self, loading: bool):if loading and self.isNull():if self.dataSource.startswith('http'):self.setUrl(self.dataSource)else:self.setImageUrl(self.dataSource)else:if self.isNull():returnself.setImageUrl(QImage())class LazyLoadScrollArea(QScrollArea):def __init__(self, parent=None):super().__init__(parent)self.labels = []self.timer = QTimer(self) # 避免多次加载self.lazy_load_thread = LazyLoadThread(self)self.lazy_load_thread.loadSignal.connect(self.on_load_signal)self.setWidget(QWidget())self.widget().setLayout(WaterfallLayout())self.setWidgetResizable(True)self.verticalScrollBar().valueChanged.connect(self.start)self.timer.timeout.connect(self.updateLazy)self.timer.setSingleShot(True)self.timer.setInterval(150)def on_load_signal(self, item: LazyLoadImage, loading: bool):try:item.setLoading(loading)item.finished.connect(lambda: item.scaledToWidth(item.width()))except Exception as e:print(e)def start(self):self.timer.stop()self.timer.start()def updateLazy(self):rect = self.viewport().rect()rect.translate(self.horizontalScrollBar().value(), self.verticalScrollBar().value())self.lazy_load_thread.setData(rect, self.labels)self.updateGeometry()def add_image(self, url: str):image_label = LazyLoadImage()image_label.setDataSource(url)image_label.setScaledContents(True)image_label.setMinimumHeight(400)self.labels.append(image_label)layout = self.widget().layout()layout.addWidget(image_label)if layout.sizeHint().height() < self.height():self.start()def resizeEvent(self, event):self.start()super().resizeEvent(event)def closeEvent(self, event):self.lazy_load_thread.stop()self.timer.stop()super().closeEvent(event)if __name__ == "__main__":app = QApplication(sys.argv)scroll_area = LazyLoadScrollArea()scroll_area.setWindowTitle("图片懒加载示例")scroll_area.resize(400, 600)# 添加一些图片URL到滚动区域image_urls = ["http://browser9.qhimg.com/bdm/1024_632_0/t010824ab8b5cdfa138.jpg","http://browser9.qhimg.com/bdm/512_316_0/t010448c46c1ecf7cab.jpg","http://browser9.qhimg.com/bdm/1024_632_0/t013a4ed4683039d101.jpg"]for url in image_urls:scroll_area.add_image(url)for url in Path(r'G:\手机\壁纸\碧蓝航线\5.26立绘\Picture').glob('*.*'):scroll_area.add_image(url.as_posix())scroll_area.show()sys.exit(app.exec())

连续创建了2675个组件左右,初次打开需要10S左右的时间

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

http://www.dtcms.com/wzjs/122287.html

相关文章:

  • 网页制作与网站建设技术大全(珍藏版)微商怎么找客源人脉
  • 三台网站建设哪家专业线上推广策划方案范文
  • c 网站开发技术湖北网站推广
  • 培训会网站建设网站排名搜索
  • 政府网站建设的战略seo是什么意思
  • 专业做网站较好的公司广州百度注册入口
  • 一起作业网站英语作业怎么做看广告赚钱
  • 如何用wd做网站设计app推广赚钱
  • 网页制作素材源代码seo整站优化更能准确获得客户
  • 什么做网站做个网站一般要多少钱啊seo排名影响因素主要有
  • 专门做物理的网站sem竞价外包公司
  • wordpress 小兽seo关键词挖掘
  • 网站建设怎么开发客户最常用的几个关键词
  • 深圳室内设计工作室排名搜索引擎优化方法案例
  • 外贸网站需要备案吗网站优化排名方案
  • 深圳营销型网站制作公司成都品牌推广
  • 兼职做放单主持那个网站好百度一级代理商
  • 珠海响应式网站建设茂名网络推广
  • phpcms v9 网站名称标签快速整站排名seo教程
  • 景区网站建设方案 费用云资源软文发布平台
  • 中国郑州建设信息网站百度排行榜小说
  • 葫芦岛城乡建设委员会网站环球网
  • 国外做ui的网站j站长工具星空传媒
  • 网站建设北京贵平台推广方式
  • 国内跨境电商平台有哪些?郑州seo服务技术
  • 广东营销型网站建设报价百度热议排名软件
  • 现在有什么新型建筑模板seo网络排名优化
  • 在学做网站还不知道买什么好百度图片搜索网页版
  • 做相册本哪个网站好用吗长沙关键词优化推荐
  • 网站建设交易中心申请网站域名要多少钱