Viac

Spustenie používateľského rozhrania nástroja na spracovanie pomocou PyQGIS


Snažím sa spustiť používateľské rozhranie spracovateľského algoritmu pomocou skriptu Python, ale nemôžem pre neho nájsť jednoduchý spôsob (samozrejme okrem dvojitého kliknutia na ňu v paneli nástrojov procesu). Plugin je simulátor vodnej siete a chcem iba spustiť jeho používateľské rozhranie pred spracovaním bez použitiaprocess.runalg ()pretože toto musí obsahovať argumenty a ja to nepotrebujem.

Niektoré spôsoby by mohli byť spustenie procesov dostupných v paneli procesov alebo odoslanie príkazu veliteľovi z konzoly python. ale netuším ako a hľadám už 2 hodiny, žiadne výsledky.


Môžete to urobiť z konzoly QGIS Python týmto spôsobom:

# Importujte triedy Processing aj CommanderWindow # z rámca Processing. from processing.core.Processing import Processing from processing.gui.CommanderWindow import CommanderWindow # Potom získajte požadovaný algoritmus (napríklad Pripojte atribúty): alg = Processing.getAlgorithm ("qgis: joinattributestable") # Vytvorte príkaz veliteľa okno a otvorte rozhranie algoritmu cw = CommanderWindow (iface.mainWindow (), iface.mapCanvas ()), ak alg nie je None: cw.runAlgorithm (alg)

To je všetko! Získate otvorené používateľské rozhranie algoritmu.

Poznámka: Názvy dostupných algoritmov môžete získať zadaním týchto riadkov v konzole QGIS Python:

importovať spracovanie processing.alglist ()

Testované v QGIS 2.10.1, Processing framework v.2.9.1 a v.2.10.1


ÚPRAVA:

Ak pri spustení útržku kódu vyššie nájdete chyby, je pravdepodobné, že používate QGIS v2.16.0, v2.16.1 alebo v2.16.2. Ak chcete vyriešiť tento problém, nainštalujte si QGIS v2.16.3.


Ak chcete otvoriť grafické rozhranie algoritmu spracovania v sériách QGIS 3.x, musíte urobiť nasledovné:

import processing processing.execAlgorithmDialog ('native: buffer') # Môže trvať parametre na predvyplnenie polí GUI processing.execAlgorithmDialog ('native: buffer', parametre = {'INPUT': iface.activeLayer (), 'DISTANCE': 10, 'SEGMENTS': 5, 'END_CAP_STYLE': 0, 'JOIN_STYLE': 0, 'MITER_LIMIT': 2, 'DISSOLVE': False, 'OUTPUT': 'TEMPORARY_OUTPUT'})

Môžete získať zoznam identifikátorov algoritmov a súvisiacich názvov

pre alg v QgsApplication.processingRegistry (). algorithms (): print (alg.id (), "->", alg.displayName ())

Vyššie uvedený kód je výňatkom z oficiálneho dokumentu „Používanie algoritmov spracovania z konzoly“


Pozri si video: QGIS Python PyQGIS - Calculate Field Values Field Calculator (Október 2021).