码迷,mamicode.com
首页 > 其他好文 > 详细

QGis provider模块的编写

时间:2015-03-17 12:04:19      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:

  • provider模块用于提供数据
    • 会作为一个节点显示在一条树上
    • 必须至少有两个类
      • provider类,继承与QgsDataProvider
        • 技术分享
      • RootItem类,节点类
        • 技术分享
    • 提供连接节点的话还需提供连接节点类
      • 技术分享
    • 提供自定义连接的话还需实现连接类
      • 无父类,自由发挥
      • 系统有写好的httlp连接类,可以直接使用
        • 技术分享
  • 最简单的provider模块编写
    1. 在src/providers下新建一个目录
      1. 技术分享
    2. 模仿ows插件,ows下所有文件拷贝过去,替换名称就行,注意代码里的文件名也要修改
      1. 修改.cpp .h文件名
      2. 修改代码引用的文件名
      3. 修改代码里的类名
      4. 在*provider.cpp中替换provider显示的名字
        1. 技术分享
      5. 修改CMakeLists.txt里的文件名
    3. 修改src/providers下的CMakeLists.txt,添加harmony目录
      1. 技术分享
  • 编写具有自定义ui的provider模块harmony
    • 说明
      • ows模块使用自带的QgsNewHttpConnection类,所以不带ui
      • provider模块的ui统一放在\src\ui目录下
      • 继承自Qt窗口类的界面类可以放在\src\gui目录(qgis自带的gui放在那里),我们可以就放在provider目录
    • 这个例子是实现了一个connection窗口类,在单机新连接后弹出一个对话框
      • 在ows的基础上修改
      • 需要的修改
        • harmonydataitems.cpp
          • 打开这个#if,激活newConnection()槽函数
          • 技术分享
          • 在newConnection中调用新写的对话框
    • 步骤
      1. 在已经有个无 ui provider模块的基础上
      2. 新建一个基于QDialog的对话框
        1. 技术分享
      3. 将代码复制到src/providers/harmony中
        1. 技术分享
      4. 并在CMakeLists.txt中添加这两个文件
      5.  将ui文件复制到src/ui中
    • CMakeLists.txt
        1. ########################################################
        2. # Files
        3. #设置源文件列表
        4. SET(HARMONY_SRCS
        5. harmonyprovider.cpp
        6. harmonydataitems.cpp
        7. harmonyconnection.cpp
        8. )
        9. #头文件
        10. SET(HARMONY_MOC_HDRS
        11. harmonyprovider.h
        12. harmonydataitems.h
        13. harmonyconnection.h
        14. )
        15. ########################################################
        16. # Build
        17. #添加生成的MOC源文件,这些文件是根据头文件生成的
        18. QT4_WRAP_CPP(HARMONY_MOC_SRCS ${HARMONY_MOC_HDRS})
        19. #设置库文件目录
        20. INCLUDE_DIRECTORIES(
        21. #qgis core
        22. ../../core
        23. #qgis gui
        24. ../../gui
        25. ${CMAKE_CURRENT_BINARY_DIR}/../../ui
        26. )
        27. #生成动态库
        28. ADD_LIBRARY (harmonyprovider MODULE ${HARMONY_SRCS} ${HARMONY_MOC_SRCS})
        29. #链接其他库
        30. TARGET_LINK_LIBRARIES (harmonyprovider
        31. qgis_core
        32. qgis_gui
        33. )
        34. ########################################################
        35. # Install
        36. #生成插件
        37. INSTALL(TARGETS harmonyprovider
        38. RUNTIME DESTINATION ${QGIS_PLUGIN_DIR}
        39. LIBRARY DESTINATION ${QGIS_PLUGIN_DIR})





附件列表

     

    QGis provider模块的编写

    标签:

    原文地址:http://www.cnblogs.com/dongdongweiwu/p/4343887.html

    (0)
    (0)
       
    举报
    评论 一句话评论(0
    登录后才能评论!
    © 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
    迷上了代码!