[FOSSGIS-Talk] "Attributeingabeformular bei Objekterstellung unterdrücke" via Python

Thomas B rdbath.regiodata at gmail.com
Di Mär 2 22:19:40 CET 2021


Hallo Claas,
freut mich, dass es geklappt hat.

Ich persönlich finde es bei Plugins, wo man was ein-/ausschaltet noch ganz
nett, wenn man ein umschaltbares Icon hat, so dass man direkt mit einem
Blick sieht, ob die Funktionalität an- oder ausgeschaltet ist. Natürlich
kein Muss, sondern eher was subjektives aber falls es von Interesse ist
hier kurz ein Ausschnitt aus einem meiner hausinternen Plugins, wo man den
Neubaustatus für PoP's/MFG's (Breitbandplanung) umschalten kann und den
eingestellten Neubaustatus dann direkt am zur Action gehörigen Icon(status)
sieht:

----
icon = QIcon()
icon.addFile( os.path.join(self.plugin_dir,"icons", "new.svg"),
state=QIcon.Off )
icon.addFile( os.path.join(self.plugin_dir,"icons", "new_active.svg"),
state=QIcon.On )
self.neubau = QAction( icon, u"Neubau ja nein", self.iface.mainWindow() )
self.neubau.toggled.connect( self.neubau_function )
self.neubau.setCheckable( True )
self.neubau.setChecked( True )

----
# Bei der zugehörigen Funktion kann man abgreifen, ob der Button
"reingedrückt" ist oder nicht:

def neubau_function( self, checked ):
        if checked:
            self.neubaustatus='Neubau'
        else:
            self.neubaustatus='Bestand'


Viele Grüße,
Thomas



Am Di., 2. März 2021 um 19:42 Uhr schrieb Claas Leiner <
claas.leiner at gkg-kassel.de>:

> Hallo Thomas,
>
> nochmals vielen Dank,
> das war genau der richtige Ansatz..
>
> Vor allem ist das ein guter Startpunkt, um ein wenig in die Anpassung
> der Benutzeroberfläche mit Python hineinzukommen.
> Ich konnte mir so zwei Icons einfügen - zum Aus- und Einschalten des
> Eingabeformulars.
>
> Viele Grüße,
>
> Claas
>
> ----------------------
>
> def classFactory(iface):
>     return FormAusschalten(iface)
>
>
> class FormAusschalten:
>     def __init__(self, iface):
>         self.iface = iface
>         self.plugin_dir = os.path.dirname(__file__)
>
>     def initGui(self):
>         self.fo_aus =
> QAction(QIcon(os.path.join(self.plugin_dir,"form_aus.svg")),"Formular
> aus!", self.iface.mainWindow())
>         self.fo_aus.triggered.connect(self.aus)
>         self.iface.addToolBarIcon(self.fo_aus)
>
>         self.fo_ein =
> QAction(QIcon(os.path.join(self.plugin_dir,"form_an.svg")),"Formular
> ein!", self.iface.mainWindow())
>         self.fo_ein.triggered.connect(self.ein)
>         self.iface.addToolBarIcon(self.fo_ein)
>
>     def unload(self):
>         self.iface.removeToolBarIcon(self.fo_aus)
>         del self.fo_aus
>         self.iface.removeToolBarIcon(self.fo_ein)
>         del self.fo_ein
>
>
>     def aus(self):
>
>
> QSettings().setValue('/qgis/digitizing/disable_enter_attribute_values_dialog',
> True)
>
>     def ein(self):
>
>
> QSettings().setValue('/qgis/digitizing/disable_enter_attribute_values_dialog',
> False)
>
> --
> -----------------------------------------
> GKG-Kassel - Dr.-Ing. Claas Leiner
> QGIS-Support und mehr
>
> Geodatenservice, Kartenwerkstatt &
> GIS-Schule Kassel
>
> Wilhelmshöher Allee 304 E
> 34131 Kassel
> Tel. 0561/56013445
> claas.leiner at gkg-kassel.de
> ----------------------------------------
> http://www.gkg-kassel.de
> ----------------------------------------
> Unterstützen Sie QGIS
> QGIS-DE e.V. | http://qgis.de
> QGIS Projekt | http://qgis.org/de/site/
>


Mehr Informationen über die Mailingliste FOSSGIS-Talk-Liste