Note Viết plugin python cho QGIS – phần 1

QGIS plugin python

Hôm nay mình sẽ note lại quá trình tìm hiểu plugin QGIS (updating this post)

Cài plugin builder

Cài plugin Builder
Cài plugin Builder

 

Nhập thông tin plugin

Cài plugin Builder
Cài plugin Builder

Cài plugin Builder
Cài plugin Builder

Cài plugin Builder
Cài plugin Builder

Lưu plugin vào thư mục

c:\Users\username.qgis2\python\plugins

Cài plugin Builder
Cài plugin Builder

Compile the resources file using pyrcc4

Mở OSGeo4W

Compile the resources file using pyrcc4
Compile the resources file using pyrcc4

Sau khi compile xong ta sẽ có các file python tương ứng

Load plugin vào QGIS

Load plugin vào QGIS
Load plugin vào QGIS

Load plugin vào QGIS
Load plugin vào QGIS

Load plugin vào QGIS
Load plugin vào QGIS

Sử dụng QT Creator

Mở file *.ui trong thư mục plugin

Mở file *.ui trong thư mục plugin
Mở file *.ui trong thư mục plugin

Thêm combo box và label

Thêm combo box và label
Thêm combo box và label

test thử

Thêm combo box và label
Thêm combo box và label

Một số code Qpython dùng console

Một số code Qpython dùng console
Một số code Qpython dùng console

Lỗi unexpected indent  khi edit python trên Notepad++

Lỗi unexpected indent khi edit python trên Notepad++
Lỗi unexpected indent khi edit python trên Notepad++

Cái này do Notepad++ thêm ký tự lạ khi ta xuống dòng và sử dụng chức năng Auto indent của Notepad++

Giải quyết

Lỗi unexpected indent khi edit python trên Notepad++
Lỗi unexpected indent khi edit python trên Notepad++

Thêm lựa chọn cho combobox

Với  layerCombo là tên combobox

Dùng phương thức  addItem

Ta sẽ get all layers hiện đang mở, sau đó chạy vòng lập để gán vào combobox

 

Thêm lựa chọn cho combobox
Thêm lựa chọn cho combobox

Gán hành động cho 2 nút OK và Cancel

 

0: Cancel

1: Ok

Cách gán sự kiện cho 1 thành phần trên giao diện

Cách gán sự kiện cho 1 thành phần trên giao diện
Cách gán sự kiện cho 1 thành phần trên giao diện

Ta sẽ gán sự kiện mở hộp thoại chọn file cho nút …

Đầu tiên, để có thể sử dụng được hộp thoại mở file và hộp thoại thông báo, ta cần khai báo ở đây

Ta sẽ gán sự kiện mở hộp thoại chọn file cho nút …
Ta sẽ gán sự kiện mở hộp thoại chọn file cho nút …

Viết hàm hộp thoại mở file

Mở hộp thoại và gán đường dẫn cho lineEdit

 

Gán hàm mở file cho nút …

Ta sẽ gán sự kiện onclick cho nút pushButton vào trong hàm add_action

 

Kết quả:

Gán hàm mở file cho nút …
Gán hàm mở file cho nút …

Hết ngày hôm nay, mai làm tiếp :v

soiqualang_chentreu