Câu trả lời:
Nếu bạn nhấp chuột phải vào lớp của bạn và Properties > Fields
sau đó nhấp vào Text Edit
, bạn có thể đặt Giá trị mặc định (bằng cách nhập giá trị hoặc sử dụng biểu thức) sẽ tự động xuất hiện trong bảng thuộc tính.
Thật không may, việc sử dụng một biểu thức như $rownum
(sẽ mang lại cho bạn các id duy nhất cho các tính năng của bạn) không hoạt động (tôi đoán là vì tính năng này phải được cam kết trước?). Nhưng chúng ta có thể tạo một hàm đếm số lượng tính năng được tạo và thêm 1. Bạn có thể truy cập Trình chỉnh sửa chức năng như trong hình:
Sau đó, trong Trình chỉnh sửa chức năng, tạo một tệp mới hoặc chỉnh sửa tệp hiện có và sử dụng mã sau đây:
from qgis.core import *
from qgis.gui import *
@qgsfunction(args='auto', group='Custom')
def update(feature, parent):
layer = qgis.utils.iface.activeLayer()
x = layer.featureCount()
return x + 1
Nhấp vào Tải, sau đó chuyển đến tab Biểu thức bên cạnh và chèn biểu thức:
update()
Sau đó bấm OK và bạn sẽ thấy giá trị xem trước:
Nhấp vào OK , Áp dụng vv và bây giờ hy vọng khi bạn tạo một tính năng, nó sẽ tự động tạo một id duy nhất trong trường bạn đã chọn.
Bạn có thể sử dụng plugin "AutoFields" để cập nhật thuộc tính Tự động khi tạo hoặc sửa đổi các tính năng vectơ
Tôi nghĩ rằng bạn không thể đặt giá trị mặc định khi tạo một tính năng mới nhưng bạn có thể thử các công việc sau:
id
với kiểu Int@row_number
sẽ mang lại giá trị duy nhất theo số hàng