Bir giriş maskesi ile bir Spatialite veritabanı beslemek için bir eklenti oluşturduk. Bir nesnenin min / maks boyutunu temsil eden iki alan vardır.
Ölçme aracını ( iface.actionMeasure().trigger()
) iki basma düğmesi "ölçü birimi" ile çağırdığımda, boyutu tıklayın ve klavyemle değeri alanlara (QLineEdit) yazın.
Ölçü Aracı ile sağ tıklamayı (ölçümü bitirmeyi) yaptıktan sonra değerin otomatik olarak alana (min veya maks, QLineEdit) işlenmesi olasılığı var mı?
- Çağrı Ölçme Aracı (çalışıyor)
- Sol Tıklama: ölçüme başlayın
- ve 4. bir kerede: Sağ tıklayın ve Ölçüm Aracı'nın toplam değerini min alanına (QLineEdit) verin.
GÜNCELLEME 1:
Bu soruyu sorduktan bir gün sonra bir ölçü aracı (ST_Length (geom)) olarak kullanabileceğim bir linestring katmanına sahip olma fikrim var. Avantajı, ondan veri manipüle etmek ve elde etmek için tam kontrole sahip olmanızdır. Bir dezavantaj, projedeki ek bir katmandır.
Bir iş akışı şunlar olabilir:
tedbiri tıklayın: düzenlemeyi aç / kapat, "Özellik Ekle" yi etkinleştir
Bir nesnenin minimum boyutunu temsil eden linestring oluşturma
Değişiklikleri onaylayın, linestring uzunluğunu hesaplayın (ST_Length (geom)), QLineEdit'e uzunluk koyun
İletişim Kutusunu kapatın ve çizgiyi kaldırın (SİL)
Ama asıl sorum devam ediyor. Mesafe değerini doğrudan Ölçüm Aracı'ndan almanın bir yolu var mı?
Güncelleme 2:
Jakob yardımı ile, Ölçüm Aracını kapatana kadar QLineEdit'imi Ölçüm Aracının Toplam değeri ile güncelleyebilirim . Ardından değer '0,000 m' olarak ayarlanır. Bunu kullanarak bu sorunu çözdüm:
def text_changed(str_measure):
if str_measure == '0,000 m':
pass
else:
self.min.setText(str_measure)
Çalışıyor, ama bunun uygun bir çözüm olup olmadığını bilmiyorum.