Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Aktywna warstwa i atrybuty edytowanego obiektu w Pythonie
02-07-2014, 07:30, (Ten post był ostatnio modyfikowany: 04-07-2014, 08:24 {2} przez sebaq.)
#1
Aktywna warstwa i atrybuty edytowanego obiektu w Pythonie
Zastanawiam się jak pobrać za pomocą Pythona (w skrypcie Init uruchamianym przy edycji warstwy), atrybut aktualnie edytowalnego obiektu (np. GID czy dowolnie inny) jak i nazwę aktywnej warstwy. Mam stworzony formularz ui, którym kopiuję pliki (wskazane przez użytkownika z dowolnej lokalizacji) na serwer plików. Ścieżka na serwer jest na sztywno przypisana w kodzie ale chciałbym aby pliki lądowały w miejscu składającym się z: ścieżka_do_serwera/aktywna_warstwa/GID_edytowanego_obiektu/nazwa_kopiowanego_pliku. Dlatego zależy mi na dobraniu się do tych dwóch danych (aktywna warstwa, GID obiektu). Kod warstwa=qgis.utils.iface.activeLayer() działa w konsoli Pythona w QGISie ale w skrypcie init już nie, co chyba kiedyś tłumaczył tutaj Borys.
Jeżeli mógłbym liczyć na małe wsparcie w tym zakresie to proszę o pomoc.
Dzięki!
10-07-2014, 08:18, (Ten post był ostatnio modyfikowany: 10-07-2014, 08:19 {2} przez sebaq.)
#2
RE: Aktywna warstwa i atrybuty edytowanego obiektu w Pythonie
Trochę to trwało ale się udało Wink
Aktywną warstwę w skrypcie init możemy pobrać przechwytując załadowany formularz (layerid):
def open_form (dialog,layerid,featureid):
Natomiast żeby mieć GID obiektu musimy wpierw zapisać do bazy świeżo dodany obiekt (to ona decyduje jaki będzie kolejny nr GID) i później go przechwycić z formularza:
GID = dialog.findChild(QLineEdit,"gid"))
W sprawie skryptów ini polecam Nathan's QGIS blog ...
15-07-2014, 09:38,
#3
RE: Aktywna warstwa i atrybuty edytowanego obiektu w Pythonie
I jeszcze jedno pytanie... jak sprawdzić czy aktywna warstwa, pozyskiwana za pomocą def open_form (dialog, layerid, featureid): jest włączona do edycji?
Pozdrawiam!
16-07-2014, 08:32,
#4
RE: Aktywna warstwa i atrybuty edytowanego obiektu w Pythonie
Spróbuj w ten sposób:

Kod:
QgsMapLayerRegistry.instance().mapLayer(layerid).isEditable()

Pozdrawiam
16-07-2014, 14:47,
#5
RE: Aktywna warstwa i atrybuty edytowanego obiektu w Pythonie
Super! Dzięki...


Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Atrybuty obiektów na podstawie innej warstwy jacek 1 3 765 08-01-2020, 12:32
Ostatni post: xmaziax
  Atrybuty tekstowe Saalomon 2 14 209 16-04-2015, 09:46
Ostatni post: Saalomon
  te same atrybuty w różnych warstwach phacops 3 17 175 13-11-2014, 17:47
Ostatni post: martel
  złącz atrybuty według lokalizacji Crypturgus 0 9 093 09-02-2011, 23:06
Ostatni post: Crypturgus
  Okna: Wynik identyfikacji vs Atrybuty cezar 2 14 801 16-09-2010, 09:22
Ostatni post: cezar
  Jak rozpocząć inwentaryzację sieci elektroenergetycznej - GIS, obiekty, atrybuty ? zelegnica 3 26 209 17-05-2010, 20:18
Ostatni post: Rayo

Skocz do: