Qt5 + ArcGIS学习笔记(动态更新)

开发环境:Qt Creator(Qt 5.14.2)+ ArcGIS Runtime 100.8

本文只包含实现特定功能所需的API和代码片段,以及某些问题的解决方案,用于个人备忘,排版爆炸,还请见谅。

 

功能实现:

  一. 资源管理

     1.Qt加载svg矢量图

        使用QtSvg中的QSvgRenderer

        

 1 QImage loadSvg(QString path = PLANEPATH){
 2     // 加载svg,返回QImage
 3     QSvgRenderer* svgRender = new QSvgRenderer();
 4     svgRender->load(path);
 5     QImage image(x, y, QImage::Format_ARGB32);
 6     image.fill(Qt::transparent);
 7     QPainter painter(&image);
 8     svgRender->render(&painter);
 9     return image;
10 }

 

     2.ArcGIS加载tpk格式地图

        使用TileCacheArcGISTiledLayer,添加到地图的layer中。

     3.ArcGIS加载显示自定义图片

        Graphic:使用PictureMarkerSymbol实例化Graphic,添加到GraphicsOverlay

 

 

  二. 动画

     1.Qt控件的动画效果

        放缩/位移:使用QPropertyAnimation

     2.定时移动

        可以使用QTimer

     3.ArcGIS更改图片的方向和位置

        Graphic::setGeometry(),PictureMarkerSymbol::setAngle()

 

 

问题:

  1.QWidget提升后样式表失效(Qt设计)

      解决方案:重写父类QWidget的paintEvent

      

 

1 // 重写paintEvent使stylesheet生效
2 void QScaleWidget::paintEvent(QPaintEvent *e){
3     QStyleOption opt;
4     opt.init(this);
5     QPainter p(this);
6     style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
7     QWidget::paintEvent(e);
8 }

 

你可能感兴趣的:(Qt5 + ArcGIS学习笔记(动态更新))