Daha çox

Siçan klik proqramı ilə bir xüsusiyyət necə seçilir


C ++ / QT 4.8.5 və api c ++ qgis 2.8.2-də çalışıram

Tətbiqimdə atribut dəyərini almaq və onları açılan pəncərələrdə göstərmək üçün siçan düyməsini basmaqla ən yaxşı seçim qatına sahib idim

Api onlayn sənədlərində iki sinifin olduğunu görürəm:

QgsMapToolIdentifyFeature və QgsMapToolIdentify

ərizəmdə istədiklərimi etmək üçün onlardan birini istifadə edə bilərəm və ya bunu etmək üçün başqa biri var?


Stackexchange-də, vebdə və "QGis ilə bina xəritələşdirmə tətbiqi" kitabında axtardıqdan sonra burada anlamağa çalışın, istəsəniz istifadə edə biləcəyiniz sadə bir həll üsulu bu kiçik bir istifadə nümunəsidir Tətbiqimdə yükləyirəm bir S57 xəritə faylı, maptool düyməsini seçərək layLayer funksiyasını aktivləşdirdiyim zaman, xəritədə hər dəfə vurduğumda son qdebug lazım olan bütün məlumatları göstərir

kod:

mIdentify = yeni QgsMapToolIdentify (mpMapCanvas); mIdentify-> activate (); // struct IdentifyResult * lStructResult; QList  lResultList; lResultList.append (mIdentify-> identifikasiya (lCoord.x (), lCoord.y (), QgsMapToolIdentify :: TopDownStopAtFirst, QgsMapToolIdentify :: VectorLayer)); qDebug () << "ölçüsü müəyyənləşdirmək Qlist =" << lResultList.size (); // QgsMapToolIdentify quruluşunu əldə edin :: IdentifyResult lStructResult = lResultList.at (0); // QgsMapLayer * lMapLayer = lStructResult.mLayer strukturundan xəritə Layer əldə edin; // xüsusiyyətini QgsFeature lFeature = lStructResult.mFeature quruluşundan almaq; // QString lLabel = lStructResult.mLabel etiketini alın; qDebug () << "Etiket =" << lLabel << "lFeatureId =" << lFeature.id () << "MapLayerName =" << lMapLayer-> name ();

nümunə test kodudur, QListin boş olub olmadığı yoxlanılmır


Videoya baxın: buz devri 4 keseli sıçanlar biipp (Oktyabr 2021).