一般来说,我一直在搜索,但找不到一个严肃的答案。问题是我有一个包含某些网址的QString变量,例如" C:/Users/Me/Desktop/image.png" ;.如何打开它并在我的应用程序窗口中显示图像? 我知道这个问题看似微不足道,但我无法找到可行的解决方案。
答案 0 :(得分:12)
使用QPixmap
加载图片,然后显示QLabel
:
QString url = R"(C:/Users/Me/Desktop/image.png)";
QPixmap img(url);
QLabel *label = new QLabel(this);
label->setPixmap(img);
答案 1 :(得分:1)
void LoadAvatar(const std::string &strAvatarUrl, QLabel &lable)
{
QUrl url(QString().fromStdString(strAvatarUrl));
QNetworkAccessManager manager;
QEventLoop loop;
QNetworkReply *reply = manager.get(QNetworkRequest(url));
QObject::connect(reply, &QNetworkReply::finished, &loop, [&reply, &lable,&loop](){
if (reply->error() == QNetworkReply::NoError)
{
QByteArray jpegData = reply->readAll();
QPixmap pixmap;
pixmap.loadFromData(jpegData);
if (!pixmap.isNull())
{
lable.clear();
lable.setPixmap(pixmap);
}
}
loop.quit();
});
loop.exec();
}