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
  Długość obiektu liniowego na działce falkon 2 2 894 03-12-2020, 22:19
Ostatni post: jerresso
  Atrybuty obiektów na podstawie innej warstwy jacek 1 3 020 08-01-2020, 12:32
Ostatni post: xmaziax
  zmiana koloru obiektu w zależności od wartości atrybutu mattiK 2 7 436 27-01-2019, 00:12
Ostatni post: jerresso
  Wydruk - złożona szrafura obiektu tm261700 5 10 808 22-11-2018, 13:42
Ostatni post: tm261700
  Atrybuty tekstowe Saalomon 2 13 444 16-04-2015, 09:46
Ostatni post: Saalomon
  te same atrybuty w różnych warstwach phacops 3 15 989 13-11-2014, 17:47
Ostatni post: martel
  Szablon wydruku - tabela atrybutów wybranego obiektu Krzych 1 10 209 15-10-2013, 22:36
Ostatni post: borys
  błąd przy identyfikacji obiektu w 1.6 wojsa 2 12 862 16-02-2011, 15:13
Ostatni post: wojsa
  złącz atrybuty według lokalizacji Crypturgus 0 8 607 09-02-2011, 23:06
Ostatni post: Crypturgus
  przyciąganie do nowo tworzonego obiektu wojsa 4 22 292 08-02-2011, 17:55
Ostatni post: tomgie

Skocz do: