QGis二次開發,開啟影像並在Qt控制項中顯示

2021-10-01 10:08:04 字數 1278 閱讀 6750

在這介紹的是通過qgis的二次開發,將影像開啟後然後顯示在qt的控制項中,我用的這個控制項是qtabwidget。總體的思想是就是將qgsmapcanvas這個類的例項化物件新增到qtabwidget裡面,顯示qtabwidge的時候就會把qgsmapcanvas也顯示出來,這就實現了通過qt的控制項來顯示影像。

1.首先將qgsmapcanvas這個類的例項化物件新增到qtabwidget裡面

//將影像介面放入tab中

ui.tabwidget->addtab(&canvas, "");

//將tab的高設為0

ui.tabwidget->tabbar()->setmaximumheight(0);

//訊號與槽

connect(ui.act_tool_open, signal(triggered()), this, slot(act_tool_open_triggered()));

2.顯示影像的槽函式

// 獲取檔名稱

qstring filename = qfiledialog::getopenfilename(this, "openfile", "e:/tif_sample/2013299");

if (filename.isempty())

// 獲取柵格圖層

qgsrasterlayer *my_rasterlayer = nullptr;

qstring basename = "tiffile";

qstring providekey = "";

if (providekey.isempty())

else

if (!my_rasterlayer->isvalid())

// 顯示影像

//my_rasterlayer->setcrs(qgscoordinatereferencesystem("epsg::32649") );

qgsproject::instance()->addmaplayer(my_rasterlayer);

canvas.setextent(my_rasterlayer->extent());

canvas.setlayers(qlist() << my_rasterlayer);

canvas.refresh();

總結

以上為實現該功能的主要**,可以漫遊與縮放。

QGIS二次開發,QGIS2 8 9 VS2010

首先感謝 專案鏈結 qt4.8.6 osgeo4w 32位 osgeo4w 64位 bison flex cygwin cmake3.2.3 這個網上很多資源應該3.0以後都沒有問題 qgis2.8.9原始碼 暫時想到這麼需要的軟體,如果有還有什麼軟體沒有放的,大家可以聯絡我。還有一些txt2tag...

QGIS二次開發第三講

具體 如下所示 cpp view plain copy include include ui qgis2.h include include include include include include include include include include color ff0000 in...

postek二次開發 POSTEK二次開發介面

例項簡介 例項截圖 核心 using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.text using ...