<div dir="ltr"><div>Hello,</div><div><br></div><div><h1 class="gmail-grid--cell gmail-fs-headline1 gmail-fl1 gmail-ow-break-word gmail-mb8" style="margin:0px 0px 8px;padding:0px;border:0px none;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:inherit;font-variant-east-asian:inherit;font-weight:inherit;font-stretch:inherit;line-height:1.3;font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;vertical-align:baseline;box-sizing:inherit;color:rgb(36,39,41);letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><font size="4"><a href="https://stackoverflow.com/questions/63010283/qgis-error-raster-layer-cannot-instantiate-the-gdal-data-provider-in-qt-c" class="gmail-question-hyperlink" style="margin:0px;padding:0px;border:0px none;font-style:inherit;font-variant:inherit;font-weight:normal;font-stretch:inherit;line-height:1.35;font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;vertical-align:baseline;box-sizing:inherit;text-decoration:none">Qgis Error “Raster layer Cannot instantiate the 'gdal' data provider” in qt c++</a></font></h1></div><div><span style="color:rgb(36,39,41);font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;font-size:15px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none">When I am trying to add a raster layer, I get this error from QgsRasterLayer::IsValid()!!! Can anybody tell me why this happens!? I am beginner in qgis, so could you please explain in detail. the first func "onAddLayer" used for Add button clicked and second func is defined for adding a raster layer.</span></div><div><span style="color:rgb(36,39,41);font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;font-size:15px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none"></span></div><div><span style="color:rgb(36,39,41);font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;font-size:15px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none"><br></span></div><div><b><span style="color:rgb(36,39,41);font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;font-size:15px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none">my code:</span></b><br></div><div style="margin-left:40px">void  MainWindow::onAddLayer()<br>{<br>  const auto  path = QFileDialog::getOpenFileName(this, "SELECT GIS MAP LAYER", QDir(<br>                                                    _lastMapDir).path());<br><br>  if (path.isEmpty() || path.isNull())<br>  {<br>    return;<br>  }<br><br>  addRasterLayer(path);<br>  _lastMapDir = QDir(path).canonicalPath();<br>}<br><br>void  MainWindow::addRasterLayer(const QFileInfo &info)<br>{<br>  LOG(QString("adding map layer %1").arg(info.filePath()));<br>  QString  errMsg;<br><br>//  if (!QgsRasterLayer::isValidRasterFileName(info.filePath(), errMsg))<br>//  {<br>//    LOG(errMsg);<br><br>//    return;<br>//  }<br><br>  QScopedPointer<QgsRasterLayer>  layer(new QgsRasterLayer(info.filePath(), info.baseName()));<br>  //layer->setDataProvider("gdal"); // Added by ArGhalavand<br><br>  if (!layer->isValid())<br>  {<br>    LOG(QString("failed to add layer (%1)").arg(layer->error().message(<br>                                                  QgsErrorMessage::Format::Text)));<br><br>    return;<br>  }<br><br>  save("last_layer_path", info.filePath(), "gis");<br>  _rasterProvider = layer->dataProvider();<br>  _mapCanvas->freeze(true);<br>  auto  item = QgsMapCanvasLayer(layer.take(), true);<br>  _mapCanvas->setExtent(item.layer()->extent());<br>  QgsMapLayerRegistry::instance()->addMapLayer(item.layer(), true);<br>  _mapCanvas->setLayerSet(QList<QgsMapCanvasLayer>() << item);<br>  _mapCanvas->freeze(false);<br>  _mapCanvas->setVisible(true);<br>  _mapCanvas->refresh();<br>  statusBar()->showMessage(QString("%1 LOADED").arg(info.fileName()), 3000);<br>}</div><div><br></div><div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><b>With Best Regards,</b></div><div>Alireza Ghalavand</div></div></div></div></div></div></div></div></div></div></div>