1)對於點狀圖層
//設置點標號
QgsSymbol *pSym1=new QgsSymbol(QGis::Point);
//設置點的外輪廓線的顏色和線寬
pSym1->setColor(Qt::black);
pSym1->setLineWidth(0.3);
//設置充填顏色和充填樣式
pSym1->setFillColor(QColor(228,108,119));
pSym1->setFillStyle(Qt::SolidPattern);
//設置符號大小
pSym1->setPointSize(1.0);
//該方法決定了標號的形狀
//pSym1->setNamedPointSymbol("svg:education_school.svg");pSym1->setNamedPointSymbol("hard:circle");
//設置繪制的符號
QgsSingleSymbolRenderer *mypRenderer1 = new QgsSingleSymbolRenderer(pLayer1->geometryType());
mypRenderer1->addSymbol(pSym1);
//應用於圖層
pLayer1->setRenderer(mypRenderer1);
需要註意的是:使用setNamedPointSymbol(QString)方法設置符號的顯示樣式,該方法提供了兩種顯示方式,壹種是"hard:符號類型"樣式,采用QGIS內置的符號樣式,如("hard:circle")表示顯示圓形符號,另外壹種"svg:svg文件名"樣式,表示已制定的svg文件顯示點符號,如("svg:education_school.svg")表示以education_school.svg文件顯示符號,要使用svg樣式,需要指定svg文件所在的路徑,可以在main()函數中,用如下方法指定:
QgsApplication a(argc,argv,true);
//設置svg文件的缺省路徑 QStringList strList; strList.append("..\\symbol"); a.setDefaultSvgPaths(strList);2)對於面狀圖層
//設置面狀標號
QgsSymbol *pSym3=new QgsSymbol(QGis::Polygon);
pSym3->setFillColor(QColor(196,230,197));
pSym3->setFillStyle(Qt::SolidPattern);
pSym3->setColor(QColor(255,255,0));
pSym3->setLineWidth(0.8);
//設置圖層繪制器
QgsSingleSymbolRenderer *mypRenderer3 = new QgsSingleSymbolRenderer(pLayer3->geometryType());
mypRenderer3->addSymbol(pSym3);
pLayer3->setRenderer(mypRenderer3);
3)對於線狀圖層
//設置線標號
QgsSymbol *pSym2=new QgsSymbol(QGis::Line);
pSym2->setColor(QColor(0,0,255));
//pSym2->setLineStyle(Qt::DashLine);
pSym2->setLineWidth(1.2);
//設置圖層繪制器QgsSingleSymbolRenderer *mypRenderer2 = new QgsSingleSymbolRenderer(pLayer2->geometryType());
mypRenderer2->addSymbol(pSym2);
pLayer2->setRenderer(mypRenderer2);
設置繪制面板的背景顏色:
pMapCanvas->setCanvasColor(QColor(155,176,227));
顯示結果: