Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Auto edycja warstwy
03-04-2013, 12:58,
#2
RE: Auto edycja warstwy
Nie mam pod ręką stabilnego Quantuma, tylko rozgrzebaną alfę 2.0, ale nie powinno być z tym problemu. W funkcji inicjującej włączasz tryb edycji oraz podłączasz sygnały z klawiszy OK i Cancel do dwóch kolejnych funkcji, w których implementujesz koniec trybu edycji. Z grubsza powinno to wyglądać jak w tym przykładzie:

http://nathanw.net/2011/09/05/qgis-tips-...hon-logic/

tylko zamiast funkcji validate() tworzysz np. zaakceptowano() i odrzucono(), w których wywołujesz warstwa.commitChanges() i warstwa.rollBack(). A skąd wziąć w nich warstwę? Zwróć uwagę na zmienne globalne (tutaj nameField i myDialog) - do zmiennej globalnej np. warstwa w funkcji inicjącej zapiszesz warstwę, żeby móc ją wywołać w tych dwóch pozostałych funkcjach.

Ważna uwaga: niestety po każdej zmianie w pliku zawierającym funkcję inicjującą MUSISZ przeładować QGISa, żeby zobaczył zmianę. Dlatego próby wygodniej jest robić w konsoli.

Ważna uwaga 2: API QGIS-a 1.x i nadchodzącego wielkimi krokami 2.x się różnią, więc przeglądając dokumentację online zwracaj na to uwagę. Np. w adresie: http://www.qgis.org/api/1.8/classQgsVectorLayer.html jest człon 1.8 - bez niego wyświetli się API gałęzi master, czyli alphy 2.0.
Zasadnicza różnica przy formularzach jest taka, że w QGIS-ie 1.x do funkcji inicjującej przekazywane są id warstwy i obiektu, czyli musisz znaleźć warstwę po id. Nie pamiętam teraz, jak to najłatwiej zrobić, pewnie trzeba szukać w klasie QgsMapLayerRegistry albo QgsMapCanvas. Natomiast w QGIS-ie rozwojowym/nocnym, czyli przyszłym 2.0, do funkcji inicjującej przekazywane są już nie id warstwy i obiektu, tylko warstwa i obiekt we własnych osobach, czyli obiekty klasy QgsVectorLayer i QgsFeature. Dzięki temu można od razu wywołać warstwa.startEditing()


Wiadomości w tym wątku
Auto edycja warstwy - przez jakosek - 03-04-2013, 11:29
RE: Auto edycja warstwy - przez borys - 03-04-2013, 12:58
RE: Auto edycja warstwy - przez jakosek - 03-04-2013, 22:24
RE: Auto edycja warstwy - przez borys - 03-04-2013, 23:02
RE: Auto edycja warstwy - przez jakosek - 04-04-2013, 11:09
RE: Auto edycja warstwy - przez borys - 04-04-2013, 11:30
RE: Auto edycja warstwy - przez jakosek - 04-04-2013, 21:53
RE: Auto edycja warstwy - przez borys - 05-04-2013, 09:59
RE: Auto edycja warstwy - przez jakosek - 05-04-2013, 21:50

Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  auto obtót warstwy wg pozycji gps gajowwy 0 6 584 22-06-2013, 23:48
Ostatni post: gajowwy
  edycja warstwy wektorowej pitt 3 17 116 22-07-2011, 10:33
Ostatni post: pitt

Skocz do: