Anwar Mohamed
Anwar Mohamed

Reputation: 653

Setting QIcon() pixmap from URL

how can i set Qicon from a url in PYQT , can you give me an example?

Upvotes: 6

Views: 4020

Answers (2)

user8234870
user8234870

Reputation:

use requests.get method to download the image and create a QIcon from it.

import sys
import requests

import PySide6
from PySide6.QtWidgets import QTableView, QWidget, QApplication, QGridLayout, QHeaderView
from PySide6.QtCore import Qt, QAbstractTableModel
from PySide6.QtGui import QColor, QIcon, QPixmap

from datetime import datetime

class MagicIcon():
    def __init__(self, link):
        self.link = link
        self.icon = QIcon()
        try:
            response = requests.get(self.link)
            pixmap = QPixmap()
            pixmap.loadFromData(response.content)
            self.icon = QIcon(pixmap)
        except:
            pass

class MainWindow(QWidget):
    def __init__():
        super().__init__()
        self.setWindowIcon(MagicIcon(
            "https://img.icons8.com/external-flatarticons-blue-flatarticons/65/000000/external-analysis-digital-marketing-flatarticons-blue-flatarticons-1.png"
        ).icon)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    wid = MainWindow()
    wid.show()
    sys.exit(app.exec())

Upvotes: 2

mata
mata

Reputation: 69082

a basic example would be:

from PyQt4.QtGui import *
from PyQt4.QtCore import QUrl
from PyQt4.QtNetwork import QNetworkAccessManager, QNetworkRequest

app = QApplication([])
url = "http://www.google.com/favicon.ico"
lbl = QLabel("loading...")
nam = QNetworkAccessManager()

def finishRequest(reply):
    img = QImage()
    img.loadFromData(reply.readAll())
    lbl.setPixmap(QPixmap(img))

nam.finished.connect(finishRequest)
nam.get(QNetworkRequest(QUrl(url)))
lbl.show()
app.exec_()

Upvotes: 8

Related Questions