如何从Qt中的文件加载图像

How to load an image from a file in Qt?

本文关键字:文件 加载 图像 Qt      更新时间:2023-10-16

总的来说,我已经找了一段时间,没有找到一个严肃的答案。问题是,我有一个QString变量包含某些url,例如。"C:/用户/我/桌面/image.png"。如何打开它并在我的应用程序窗口中显示图像?我知道这个问题可能看起来微不足道,但是我找不到一个有效的解决方案。

使用QPixmap加载图像,然后使用QLabel显示:

QString url = R"(C:/Users/Me/Desktop/image.png)";
QPixmap img(url);
QLabel *label = new QLabel(this);
label->setPixmap(img);

imageview示例

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();
}