Daha çox

PyQGIS istifadə edərək Qenerasiya alətinin istifadəçi interfeysinin işə salınması

PyQGIS istifadə edərək Qenerasiya alətinin istifadəçi interfeysinin işə salınması


Python skriptindən istifadə edərək bir işləmə alqoritminin interfeysini işə salmağa çalışıram, amma bunun üçün sadə bir yol tapa bilmirəm (əlbəttə ki, proses alət qutusuna iki dəfə vurmaq bir yana). Plugin bir su şəbəkəsi simulyatorudur və yalnız istifadə etmədən əvvəlcədən işlənmiş istifadəçi interfeysini başlamaq istəyirəmprocess.runalg ()çünki bunun arqumentlər daxil etməsi lazımdır və mənə ehtiyac yoxdur.

Bəzi yollar proses alət qutusundakı prosesləri tetiklemek və ya python konsolundan komandirə əmr göndərmək ola bilər. amma necə olduğum barədə bir məlumatım yoxdur və 2 saatdır axtarıram, heç bir nəticə yoxdur.


Bunu QGIS Python konsolundan bu şəkildə edə bilərsiniz:

# Qenerasiya çərçivəsindən həm Qenerasiya, həm də CommanderWindow # siniflərini idxal edin. from Processing.core.Processing import Processing from Processing.gui.CommanderWindow import CommanderWindow # Sonra maraqlandığınız alqoritmi əldə edin (məsələn, Atributlara qoşulun): alg = Processing.getAlgorithm ("qgis: joinattributestable") # Komandiri hazırlayın pəncərəni açın və alqoritm interfeysini açın cw = CommanderWindow (iface.mainWindow (), iface.mapCanvas ()) əgər alg yoxdursa: cw.runAlgorithm (alg)

Bu belədir! Alqoritmin interfeysini açarsınız.

Qeyd: Bu satırları QGIS Python konsoluna daxil edərək mövcud alqoritmlərin adlarını əldə edə bilərsiniz:

idxal emal Processing.alglist ()

QGIS 2.10.1, İşləmə çərçivəsi v.2.9.1 və v.2.10.1-də sınaqdan keçirilmişdir


RED:

Yuxarıdakı kod parçasını işlədən zaman səhvlər taparsanız, QGIS v2.16.0, v2.16.1 və ya v2.16.2 istifadə etməyiniz ehtimalı yüksəkdir. Problemi həll etmək üçün QGIS v2.16.3 quraşdırın.


QGIS 3.x seriyasında bir işləmə alqoritmi GUI açmaq üçün aşağıdakıları etməlisiniz:

import Processing processing.execAlgorithmDialog ('native: buffer') # GUI sahələrini doldurmaq üçün parametrlər götürə bilər Processing.execAlgorithmDialog ('native: buffer', parametrlər = {'INPUT': iface.activeLayer (), 'DISTANCE': 10, 'SEGMENTS': 5, 'END_CAP_STYLE': 0, 'JOIN_STYLE': 0, 'MITER_LIMIT': 2, 'DISSOLVE': False, 'OUTPUT': 'TEMPORARY_OUTPUT'})

Alqoritmlərin identifikatoru və əlaqəli adın siyahısını əldə edə bilərsiniz

algs in QgsApplication.processingRegistry (). alqoritmləri (): print (alg.id (), "->", alg.displayName ())

Yuxarıdakı kod "Konsoldan işləmə alqoritmlərindən istifadə" rəsmi sənəddən bir çıxarışdır


Videoya baxın: Lizandra Winter Feat. Joshua na die Reën- Until Love