안녕하세요?
이번 글에서는 QGIS 플러그인 개발 편의를 지원하는 Plugin Builder 3 사용법을 정리해 보겠습니다.
Plugin Builder 3 플러그인은 상단 메뉴 '플러그인 > 플러그인 관리 및 설치'에서 조회하시면 됩니다.
해당 플러그인은 '플러그인 > Plugin Builder > Plugin Builder'에 위치해 있습니다. 한 번 실행해볼까요?!
아래와 같이 QGIS Plugin Builder가 실행되었는데요, 각각 입력 텍스트에 관해 알아보겠습니다.
Class name은 플러그인의 Python 클래스를 만들 때 사용되는 이름이므로, 공백없이 낙타 대문자(CamelCase)를 사용합니다.
Plugin name은 플러그인의 이름입니다. Plugin Manager와 Plugin Installer에 표시됩니다. Plugin 메뉴에
노출되는 메뉴 이름으로도 사용됩니다. 클래스 이름을 사용하거나 보다 쉬운 이름으로 설정하시면 됩니다.
Description은 플러그인기능에 대한 한 줄 설명이며 Plugin Manager와 Plugin Installer에 모두 표시됩니다.
Module name은 플러그인을 위한 Python 모듈(*.py,)을 만들 때 사용될 이름입니다.
아래 예시 문구처럼, 밑줄을 사용하여 구분된 단어들로 구성하며 소문자여야 합니다.
Version number는 플러그인 버전입니다. Plugin Builder는 0.1이 제안하지만, 어떤 숫자로 시작해도 좋습니다.
Plugin Installer는 버전을 기준으로 플러그인 업그레이드 여부를 체크하므로, 새 버전 출시 때 번호를 증가시키는 것이 중요합니다.
Minimum QGIS version는 플러그인이 작동하는데 필요한 QGIS의 최소 버전을 뜻합니다. 플러그인이 최신버전에만
있는 기능을 사용하는 경우, 이 필드를 적절히 설정하여 이전 버전을 실행하는 사용자의 문제를 예방할 수 있습니다.
Author/Company는 이름 또는 소속명을 입력합니다. 이 정보는 플러그인 소스파일에
저작권 표기에도 사용됩니다. Plugin Installer와 QGIS plugin repository에 표시됩니다.
Email address는 플러그인 사용자가 연락할 수 있는 주소입니다.
소스파일 저작권 헤더에 기록되며 플러그인의 QGIS plugin repository에도 표시됩니다.
이제 텍스트를 입력해볼까요?! 저는 아래와 같이 정보를 입력했습니다.
- Class name: VegetationUAV
- Plugin name: Vegetation UAV
- Description: This plugin calculates Visible Vegetation Indices (VVIs).
- Module name: vegetation_uav
- Author/Company: Byeong-Hyeok Yu / Korea National Park Service
- Email address: bhyu@knps.or.kr
'Next' 버튼을 클릭하시면 About 란에 아래와 같이 기술을 작성하실 수 있습니다.
다음 화면은 아래와 같습니다.
Template은 플러그인을 어디에 어떻게 위치할 지를 선택합니다.
Template을 'Tool button with dock widget'으로 변경한 설정 화면입니다.
Template을 'Processing Provider'으로 변경한 설정 화면입니다.
여기서는 Template을 'Tool button with dialog'로 선택하고 설치를 계속 합니다. Text for the menu item는 메뉴 항목의
텍스트로 메뉴에 표시됩니다. 저는 Plugin name은 Vegetation UAV, 메뉴 항목의 텍스트는 Calculate VVIs를 입력했습니다.
Menu는 플러그인의 주요 기능을 기반으로 적합한 위치를 지정합니다. 특정 범주가 적용되지 않으면 Plugins를 선택합니다.
자, 아래와 같이 입력했습니다. 다음 단계로 넘어가볼까요?!
Flag the plugin as experimental는 알아둘 필요가 있습니다. 이것은 플러그인이 실험적이라 사용자에게 불완전하거나
예기치 않은 결과를 초래할 경우 체크하시면 됩니다. Plugin Installer에서는 실험용 플러그인을 필터링할 수 있습니다.
자, 이제 출력 디렉터리만 지정해주시면 되는데요,
상단 메뉴에 '설정 > 사용자 프로파일 > Open Active Profile Folder'를 선택하시면 기존 플러그인이 저장된 위치를 확인하실 수 있습니다.
여기서는 'C:\Users\{사용자이름}\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\vegetationuav'입니다.
출력 디렉터리 위치는 plugins 폴더까지 지정해 주시면 됩니다.
이제 plugin 소스가 생성되고 아래와 같이 다음 단계에 관한 안내 글이 소개됩니다.
이제 플러그인 폴더로 가보시면 아래와 같이 소스코드가 자동 생성되어 있습니다.
이제 플러그인을 컴파일해 보겠습니다. OSGeo4W Shell을 실행합니다.
파이썬을 실행하면, 아래와 같이 버전 2.7.14를 확인하실 수 있습니다.
py3_env를 실행하시면, 아래와 같이 파이썬 3.7로 설정이 변경됩나다.
qt5_env를 통해 PyQT 5 설정도 하실 수 있습니다.
이제 플러그인이 저장된 폴더로 이동하고 소스를 컴파일 해줍니다.
cd C:\Users\{사용자이름}\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\vegetationuav
pyrcc5 -o resources.py resources.qrc
이제 '플러그인 > 플러그인 관리 및 설치'에서 해당 플러그인을 체크해주시면 됩니다.
자, 이제 아래와 같이 '플러그인 > Vegetation UAV > Calculate VVIs'가 추가되었습니다.
해당 메뉴의 텍스트를 클릭하시면,아래와 같이 Vegetation UAV 창이 실행됩니다.
Python 모듈을 열어본 화면입니다. 저작권 헤더에 Author/Company와 Email address가
표기되어 있습니다. 클래스 이름도 앞서 설정한 Class name으로 지정된 것을 보실 수 있습니다.
그렇다면 플러그인 UI는 어떻게 변경할까요?! 'Qt Designer with QGIS 3.4.0 custom widgets'를 실행하고 아래와 같이 UI 파일을 열어주시면 됩니다.
이제 Qt Designer를 통해 UI를 변경하실 수 있습니다. 상응하는 소스코드는 Python 모듈에서 작성하시면 되겠습니다.