Web サイトの favicon.ico ファイルから QIcon オブジェクトを作成しようとしています。このダウンロードは必ずしも GUI スレッドで行われるとは限らないため、QPixmap を使用することはできません。これまでのところ、QPixmap を使用せずに QImage から QIcon に変換する方法を見つけることができず、QImageReader などを使用することはできません。
次のコードが機能するようになりました。
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;
しかし、それはうまくいきません。
誰か提案はありますか?