Я створив плагін для живлення бази даних Spatialite з маскою введення. Є два поля, які представляють мін / максимальний розмір об'єкта.
У той момент, коли я закликаю інструмент вимірювання ( iface.actionMeasure().trigger()
) двома кнопковими кнопками "міряти", клацніть розмірність і введіть значення за допомогою моєї клавіатури в поля (QLineEdit).
Чи існує можливість, що після того, як я натискаю правою кнопкою миші (закінчую вимірювання) за допомогою інструменту вимірювання, значення буде автоматично введене в поле (min або max, QLineEdit)?
- Засіб виклику заходів (працює)
- Клацніть лівою кнопкою миші: починайте вимірювання
- і 4. відразу: клацніть правою кнопкою миші та введіть загальне значення інструменту вимірювання у поле min (QLineEdit).
ОНОВЛЕННЯ 1:
Одного разу після того, як задати це питання, у мене з’явилася ідея мати шар рядків рядків, який я міг би використовувати як інструмент вимірювання (ST_Length (geom)). Перевага полягає в тому, що ви могли мати повний контроль над маніпулюванням та отриманням даних. Недоліком є додатковий шар у проекті.
Робочий процес може бути:
міра натискання: перемикання редагування, активація "Додати функцію"
Створіть рядковий рядок, який представляє мінімальний розмір об'єкта
Підтвердити зміни, обчислити довжину рядкового рядка (ST_Length (geom)), докласти довжину до QLineEdit
Закрити діалогове вікно та видалити рядок (ВИДАЛИТИ ВІД)
Але моє актуальне питання залишається. Чи є спосіб отримати значення відстані безпосередньо від інструменту вимірювання?
Оновлення 2:
За допомогою, якщо Якоб я можу оновити свій QLineEdit на загальне значення інструменту вимірювання, поки не закрию інструмент вимірювання. Тоді значення встановлюється "0 000 м". Я вирішив цю проблему, скориставшись цим:
def text_changed(str_measure):
if str_measure == '0,000 m':
pass
else:
self.min.setText(str_measure)
Це працює, але я не знаю, чи це правильне рішення.