Вывод n(ого) количества изображений(PyQt)
имеется массив картинок(ссылок на них), надо вывести окно с картинками(по ссылке без скачивания) пространство окна должно вычислять сколько при данном количестве картинок может быть каждая картинка в размере,как любой сайт с видосами,только тут в окне(тобишь нужен вывод именно не по одной сверху вниз,а слева на право все сразу) нашол только пример такого рода но он я так понял работает только с 1 картинкой,а как изменить код под себя не разобрался:
from PyQt5 import Qt
class URLView(Qt.QWidget):
def __init__(self, parent=None):
super().__init__(parent)
layout = Qt.QVBoxLayout(self)
self.b('https://klike.net/uploads/posts/2021-01/1611131129_1.jpg',layout)
def b(self,h,layout):
self.imageLabel = Qt.QLabel()
self.imageLabel.setScaledContents(True)
layout.addWidget(self.imageLabel)
self.nam = Qt.QNetworkAccessManager()
print("Load image")
url = h
self.nam.get(Qt.QNetworkRequest(Qt.QUrl(url)))
self.nam.finished.connect(self.finish_request)
def finish_request(self, reply):
img = Qt.QPixmap()
img.loadFromData(reply.readAll())
self.imageLabel.setPixmap(img)
if __name__ == '__main__':
app = Qt.QApplication([])
w = URLView()
w.show()
app.exec()
Ответы (1 шт):
Автор решения: torestyi
→ Ссылка
class PictureWidget(QWidget):
def __init__(self):
super().__init__()
self.title = 'PyQt5 QNetworkAccessManager - Download Image'
self.left = 10
self.top = 10
self.width = 800
self.height = 600
self.initUI()
def initUI(self):
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
# Create an instance of QNetworkAccessManager
self.manager = QNetworkAccessManager()
self.manager.finished.connect(self.onFinished)
# Create a list of image URLs
self.urls = ["",
"",
""]
self.startDownload()
def startDownload(self):
self.pix = 0
self.loadImage(self.urls[self.pix])
def loadImage(self, url):
self.label = QLabel(self)
self.label.resize(200, 300)
self.label.move(self.pix * 200, 0)
self.pix += 1
req = QNetworkRequest(url)
self.manager.get(req)
def onFinished(self, reply):
pixmap = QPixmap()
pixmap.loadFromData(reply.readAll())
self.label.setPixmap(pixmap)
reply.deleteLater()
if self.pix < len(self.urls):
self.loadImage(self.urls[self.pix])