python3.x_dev Ответов: 1

Как сделать так, чтобы вкладки в pyqt5 отображали фавикон с любого сайта?


Здравствуйте, я создаю браузер(например, Firefox, Chrome, Opera) с помощью pyqt5, пользователь может открывать новые вкладки и закрывать их. Я пытаюсь изменить значок вкладки на favicon веб-сайтов.

Я провел некоторое исследование и выяснил, что большинство веб-сайтов хранят свою иконку в https://example.com/favicon.ico (у них должен быть какой-то лучший способ получить favicon с веб-сайта)

Я не могу найти способ отображения изображения на вкладке из интернета.

Что я уже пробовал:

Я попробовал это сделать, но потом обнаружил, что не могу использовать QIcon для отображения значка из ссылки. Он считывает только изображение из пути к файлу:
current_tab_index = self.tabs.currentIndex()
url = "http://www.google.com/favicon.ico"
NetworkAccessManager = QNetworkAccessManager()

print(current_tab_index)
self.tabs.setTabIcon(current_tab_index, QIcon(url))

Я нашел что-то с QPixmap, но не знаю, как применить его к вкладке:
from PyQt5.QtWebEngineWidgets import *
from PyQt5.QtPrintSupport import *

from PyQt5 import QtCore, QtGui, QtWidgets

from PyQt5.QtCore import QUrl
from PyQt5.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_()

1 Ответов

Рейтинг:
2

ilrbid

Это невозможно. Я все равно не видел в документах, чтобы это работало.