웹 사이트의 favicon.ico 파일에서 QIcon 개체를 만들려고합니다. 이 다운로드는 GUI 스레드에서 반드시 발생하는 것은 아니기 때문에 QPixmap을 사용할 수 없으며 QPixmap을 사용하지 않고 QImage에서 QImage로 변환하는 방법을 찾지 못한 채 QImageReader와 같은 것을 사용할 수 없습니다.QPixmap을 사용하지 않고 favicon.ico를 QIcon으로 가져 오기
나는하려면 다음 코드를 입수했습니다 :
QUrl url("http://www.google.com/favicon.ico");
QNetworkRequest request(url);
QNetworkReply* pReply = manager.get(request);
// ... code to wait for the reply ...
QByteArray bytes(pReply->readAll());
QFile file("C:/favicon.ico");
file.open(QIODevice::WriteOnly);
file.write(bytes);
file.close();
QIcon icon("C:/favicon.ico");
return icon;
는 그러나, 나는 임시 파일을 작성하지 않도록합니다. 그래서 같은 것을 시도했습니다 ...
QBuffer buffer(&bytes);
buffer.open(QIODevice::ReadOnly);
QDataStream ds(&buffer);
QIcon icon;
ds >> icon;
하지만 작동하지 않습니다.
누구에게 의견이 있습니까?
어떻게 작동하지 않습니까? 런타임 오류가 발생 했습니까? 그렇다면 오류가 무엇입니까? –
런타임 오류가 없습니다. 내가 QStandardItem을 추가하고 내가 만들고있는 항목에 아이콘을 전달하는 QTreeView에서 반환 된 QIcon을 사용합니다. 앞에서 언급했듯이 QByteArray를 임시 파일에 쓴 다음이 파일을 사용하여 QIcon을 초기화하면 작동합니다. QDataStream 메소드를 사용하면 트리에 아이콘이 표시되지 않습니다. – Addy