码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • QGIS+qt 二次开发 缩放要素


    目录

    1 前言

    2 缩放要素

    3 代码调整

    4 如何调用

    5 最后效果


    1 前言

            上一篇文章《QGIS+qt 二次开发 移动要素》中提到了如何实现要素移动的功能,本文来说一下要素的缩放功能怎么实现。

    2 缩放要素

            打开QGIS,先导入一张shp图层文件:

     观察到要素工具栏里有缩放要素按钮,按下激活要素缩放功能。

     然后和移动要素一样,鼠标点击图层中的要素,再移动鼠标,会有缩放调整效果的展示,如下:

     

             有了之前移动要素的实现经验,我们还是先来看一下源码,在qgsmaptoolmovefeature.cpp的目录下,很快就能看见一个叫qgsmaptoolscalefeature.cpp的文件,打开看一下。

    qgsmaptoolscalefeature.cpp

    1. /***************************************************************************
    2. qgsmaptoolscalefeature.cpp - map tool for scaling features by mouse drag
    3. ---------------------
    4. Date : December 2020
    5. Copyright : (C) 2020 by roya0045
    6. Contact : ping me on github
    7. ***************************************************************************
    8. * *
    9. * This program is free software; you can redistribute it and/or modify *
    10. * it under the terms of the GNU General Public License as published by *
    11. * the Free Software Foundation; either version 2 of the License, or *
    12. * (at your option) any later version. *
    13. * *
    14. ***************************************************************************/
    15. #include
    16. #include
    17. #include
    18. #include
    19. #include
    20. #include
    21. #include
    22. #include "qgsadvanceddigitizingdockwidget.h"
    23. #include "qgsmaptoolscalefeature.h"
    24. #include "qgsfeatureiterator.h"
    25. #include "qgsgeometry.h"
    26. #include "qgslogger.h"
    27. #include "qgsmapcanvas.h"
    28. #include "qgsrubberband.h"
    29. #include "qgsvectorlayer.h"
    30. #include "qgstolerance.h"
    31. #include "qgisapp.h"
    32. #include "qgsspinbox.h"
    33. #include "qgsdoublespinbox.h"
    34. #include "qgssnapindicator.h"
    35. #include "qgsmapmouseevent.h"
    36. QgsScaleMagnetWidget::QgsScaleMagnetWidget( const QString &label, QWidget *parent )
    37. : QWidget( parent )
    38. {
    39. mLayout = new QHBoxLayout( this );
    40. mLayout->setContentsM
  • 相关阅读:
    Vue安装和环境配置
    Altium格式PCB转换成Allegro操作指导
    【网络篇】第十一篇——简单的TCP英译汉服务器
    4800曲线计算及常用导线坐标正算,反算.(步骤极少,方便输入)
    而今迈步从头越|nacos逼我在mac上重新安装java8与环境变量的配置
    代码随想录二刷:数组
    C++ 测试框架 GoogleTest 初学者入门篇 乙
    【uniapp】签名组件,兼容vue2vue3
    K8S | Config应用配置
    基于机器视觉的车道线检测 计算机竞赛
  • 原文地址:https://blog.csdn.net/dinjay/article/details/127921475
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号