Več

Pogojni spustni seznam v orodju za skripte python

Pogojni spustni seznam v orodju za skripte python


Iz neke kode pythona sem ustvaril orodje za skripte, v prejšnjem vprašanju pa sem se naučil, kako omogočiti spustni seznam v tem orodju s spremembo kode za preverjanje - glej spodnjo povezavo in sliko:

Nastavljanje spustnega seznama v parametrih orodja za skripte Python?

Zdaj bi rad, da ima drugi uporabniški vnos v orodju lasten spustni seznam, katerega člani se spreminjajo glede na izbiro v prvem vnosu - glej sliko:

Na primer, če je uporabnik izbral mesto "Winooski", bi rad ta vnos shranil kot spremenljivko, ki se lahko imenuje "ime", ki bi bila potem lahko vključena v blok kode, kot je ta:

name = self.params [0] roads = "Z:  OPS  TechnicalServices  Culverts  GetCulverts  GetCulverts.gdb \% s"% name row = arcpy.SearchCursor (cesta) self.params [1] ] .filter.list = razvrščeno (seznam (seznam (set (r.getValue ('CTCODE') za r v vrsticah))) del vrstice

V imeniku "ceste", opredeljenem v tej kodi, imam razred lastnosti za vsako ime mesta, ki vključuje samo ceste za to mesto - tako bo orodje uporabniku omogočilo, da izbere mesto, nato pa mu bo predstavljen seznam državnih cest v tem mestu, med katerimi lahko izbirate. Zgornjo kodo sem poskušal prilepiti v kodo za preverjanje tik pod blok kode, ki je rešil mojo prvo težavo (na prvi sliki zgoraj). Predvidevam, da se koda za preverjanje zažene šele, ko prvič odprete orodje. Kakršenkoli namig, kam naj zataknem kodo za to (morda v kodi samega orodja ...?), Ali kako naj spremenim majhen blok, ki sem ga napisal?


Videti je, da ste bili precej blizu ... Uporabiti morate samo lastnost .value parametra:

def updateParameters (self): "" "Spremenite vrednosti in lastnosti parametrov, preden se izvede notranja validacija. Ta metoda se pokliče vsakič, ko je bil spremenjen parmater." "" če self.params [0] .value: name = str ( self.params [0] .value) roads = "Z:  OPS  TechnicalServices  Culverts  GetCulverts  GetCulverts.gdb \% s"% name row = arcpy.SearchCursor (cesta) self.params [ 1] .filter.list = razvrščeno (seznam (seznam (set (r.getValue ('CTCODE') za r v vrsticah))) del vrne vrnitev

Poglavje 18 & # 8211 Nadzor tipkovnice in miške z avtomatizacijo GUI


Podprite avtorja: Kupite knjigo na Amazon ali
paket knjig / e-knjig neposredno pri No Starch Press.

Preberite avtorjeve druge brezplačne knjige o Pythonu:


S tem sem se boril že dolgo časa, a končno razbil:

V stolpcu z datumi uporabite pogojno oblikovanje in kot formulo po meri vnesite naslednje:

kjer je A1 prvi datum v stolpcu.

S tem bo pogojno oblikovanje uporabljeno za vse delavnike z vrednostjo 1 (nedelja) in 7 (sobota).

Preprosto (a nekoliko dolgočasno!) V novih Google Preglednicah. Za pogojno oblikovanje je približno potrebno novo pravilo za vsako barvo. (Eno barvo je običajno mogoče preskočiti iz pravil in jo namesto tega uporabiti z običajnim formatiranjem - kar bi bilo nadomeščeno, če velja kateri koli pogoj za CF.) Zato pričakujte, da boste osnove naslednjega ponovili vsaj petkrat.

Recimo, da je stolpec z datumi A. Izberite ga, Oblika> Pogojno oblikovanje. Formula po meri je in vnesite:

Izberite zahtevano oblikovanje.

Končni 1 zgoraj je za nedeljo, drugi dnevi sledijo v številčnem vrstnem redu.

Ponovite za druge zahtevane oblike in po potrebi prilagodite 1.

Ker ta pravila niso v nasprotju (vsak datum je samo določen dan v tednu), vrstni red dodajanja pravil (z "+ Dodaj še eno pravilo") ni pomembno.


Parametri

Tabela s poljem, ki bo posodobljeno z novim izračunom.

Polje, ki bo posodobljeno z novim izračunom.

Če polje z navedenim imenom ne obstaja v vhodni tabeli, bo dodano.

Preprost izračunski izraz, ki se uporablja za ustvarjanje vrednosti, ki bo zapolnila izbrane vrstice.

Določa vrsto izraza, ki bo uporabljen.

  • Python 3 - Uporabljena bo vrsta izraza Python. To je privzeto.
  • Arcade - Uporabljena bo vrsta izraza Arcade.
  • SQL - Uporabljen bo izraz tipa SQL.

Blok kode, ki se vnese za kompleksne izraze.

Določa vrsto polja novega polja. Ta parameter se uporablja samo, če ime polja ne obstaja v vhodni tabeli.

  • Besedilo - Uporabite lahko poljuben niz znakov.
  • Float (enojna natančnost) - Uporabite lahko delna števila med -3,4E38 in 1,2E38.
  • Double (dvojna natančnost) - Uporabite lahko delna števila med -2,2E308 in 1,8E308.
  • Kratek (majhno celo število) - Uporabijo se lahko celotne številke med -32.768 in 32.767.
  • Dolgo (veliko celo število) - lahko se uporabijo celotne številke med -2.147.483.648 in 2.147.483.647.
  • Datum - uporabljena bo datum in ura.
  • Blob (binarni podatki) - Uporabljeno bo dolgo zaporedje binarnih števil. Če želite naložiti elemente v polje BLOB ali si ogledati vsebino, potrebujete nalagalnik ali pregledovalnik po meri ali neodvisno aplikacijo.
  • Rasterske slike - uporabljene bodo rasterske slike. Vse formate rastrskih naborov podatkov, ki jih podpira ArcGIS, lahko shranite, vendar je priporočljivo, da uporabljate le majhne slike.
  • GUID (globalno unikatni identifikator) - Uporabljen bo globalno unikatni identifikator.

Določa, ali bodo pravila domene polja uveljavljena.

  • Označeno - pravila domene polja bodo uveljavljena. Če polja ni mogoče posodobiti, bo vrednost polja ostala nespremenjena, sporočila orodja pa bodo vključevala opozorilno sporočilo.
  • Neznačeno - pravila domene polja ne bodo uveljavljena. To je privzeto

Izpeljani izhod

Tabela s poljem, ki bo posodobljeno z novim izračunom.

Polje, ki bo posodobljeno z novim izračunom.

Če polje z navedenim imenom ne obstaja v vhodni tabeli, bo dodano.

Preprost izračunski izraz, ki se uporablja za ustvarjanje vrednosti, ki bo zapolnila izbrane vrstice.

Določa vrsto izraza, ki bo uporabljen.

  • PYTHON3 - Uporabljen bo izraz Python. To je privzeto.
  • ARKADA - Uporabljena bo vrsta izraza Arcade.
  • SQL - Uporabljen bo izraz tipa SQL.

Če želite izvedeti več o izrazih Python, glejte Primeri izračuna izračuna polja Python.

Če želite izvedeti več o arkadnih izrazih, glejte ArcGIS Arcade guide.

Če želite izvedeti več o izrazih SQL, glejte Izračun vrednosti polj.

Izrazi SQL podpirajo hitrejše izračune za storitve funkcij in zbirke podatkovnih zbirk podjetja. Namesto izvajanja izračunov po eno značilnost ali vrstico naenkrat je za strežnik ali bazo podatkov nastavljena ena zahteva, kar ima za posledico znatno hitrejše izračune.

SQL-izrazi podpirajo samo storitvene funkcije in zbirke podatkovnih zbirk podjetja. Za druge formate uporabite izraze Python ali Arcade.

Blok kode, ki se vnese za kompleksne izraze.

Določa vrsto polja novega polja. Ta parameter se uporablja samo, če ime polja ne obstaja v vhodni tabeli.

Če je polje besedilnega tipa, bo novo polje dolžine 512. Za datoteke datotek shape in datoteke dBASE bo polje dolžine 254. Dolžino novega polja lahko prilagodite z orodjem Alter Field.

  • BESEDILO - Uporabi se lahko poljuben niz znakov.
  • FLOAT - Uporabite lahko delna števila med -3,4E38 in 1,2E38.
  • DVOJNO - lahko se uporabijo delna števila med -2,2E308 in 1,8E308.
  • KRATKO - Uporabite lahko celotne številke med -32.768 in 32.767.
  • LONG - Uporabite lahko celotne številke med -2,147,483,648 in 2,147,483,647.
  • DATUM - Uporabljena bo datum in ura.
  • BLOB - Uporabljeno bo dolgo zaporedje binarnih števil.
  • RASTER - Uporabljene bodo rastrske slike. Vse formate rastrskih naborov podatkov, ki jih podpira ArcGIS, lahko shranite, vendar je priporočljivo, da uporabljate le majhne slike.
  • GUID - Uporabljen bo globalno enoličen identifikator.

Določa, ali bodo pravila domene polja uveljavljena.

  • ENFORCE_DOMAINS - Izvajala se bodo pravila domene polja.
  • NO_ENFORCE_DOMAINS - Pravila domene polja ne bodo uveljavljena. To je privzeto.

Izpeljani izhod

Vzorec kode

Naslednji skript okna Python prikazuje, kako uporabljati funkcijo CalculateField v takojšnjem načinu.

Uporabite CalculateField za dodelitev vrednosti centroida novim poljem.

Za izračun vrednosti na podlagi obsegov uporabite CalculateField s kodnim blokom.

Uporabite CalculateField za dodelitev naključnih vrednosti novemu polju.

Naslednji skript okna Python prikazuje, kako v neposrednem načinu uporabljati funkcijo CalculateField z ARCADE.

Naslednji skript okna Python prikazuje, kako v neposrednem načinu uporabljati funkcijo CalculateField z SQL.


Meni za večkratno izbiranje v skriptu bash [zaprto]

Želite izboljšati to vprašanje? Posodobite vprašanje, tako da bo na temo za napako strežnika.

Sem bash novinec, vendar bi rad ustvaril skript, v katerem bi želel uporabniku dovoliti, da na seznamu možnosti izbere več možnosti.

V bistvu bi si želel nekaj podobnega spodnjemu primeru:

Vendar bi imel moj skript več možnosti in rad bi omogočil izbiro večkratnikov. Torej nekaj takega:

1) Možnost 1
2) Možnost 2
3) Možnost 3
4) Možnost 4
5) Končano

Odlično bi bilo tudi, če bi imeli povratne informacije o tistih, ki so jih izbrali, npr. Znaki plus poleg že izbranih. Npr., Če izberete "1", ki jo želim počistiti in znova natisniti:

Če bi ponovno izbrali (1), bi želel, da možnost »prekine izbiro«:

In končno, ko pritisnete Končano, bi želel, da se seznam tistih, ki so bili izbrani, prikaže pred izhodom programa, npr. Če je trenutno stanje:

Torej moje vprašanje - ali je to mogoče v bashu in če je lahko kdo priskrbi vzorec kode?


Cela števila, ki se uporabljajo kot bitne zastavice, lahko v eno lastnost shranijo več vrednosti true / false (logične vrednosti). Z uporabo namiga za izvoz int, FLAGS,. , jih lahko nastavite v urejevalniku:

Za vsako zastavico morate navesti opis niza. V tem primeru ima ogenj vrednost 1, voda ima vrednost 2, Zemlja ima vrednost 4 in veter ustreza vrednosti 8. Običajno je treba konstante ustrezno določiti (npr. Const ELEMENT_WIND = 8 itd.).

Nasveti za izvoz so na voljo tudi za sloje fizike in upodabljanja, opredeljene v nastavitvah projekta:

Uporaba bitnih zastavic zahteva nekaj razumevanja bitnih operacij. Če ste v dvomih, raje uporabite logične spremenljivke.


Kako dodati barvo na spustni seznam v Excelu

Ta vadnica prikazuje korake za dodajanje barve na spustni seznam v programu Microsoft Excel.

Več o sistemu Windows

Barva je lahko močan element na spustnem seznamu v Excelu in to je lažje dodati, kot si mislite - preprosto dodate pogojna pravila oblikovanja v celico, ki vsebuje spustni seznam. Naučite se dodati nov seznam in kontrolnik za preverjanje veljavnosti ter nato dodati pravila pogojnega formata, da vključite vizualne znake. Lahko delate z lastnimi podatki ali prenesete predstavitvene datoteke .xlsx in .xls.

Za začetek dodajte nov list in nato dodajte nov seznam z besedilnimi elementi rdeča, modra, zelena in rumena (Slika A). Z navodili iz prejšnjega članka spustnega seznama v Excelu ustvarite spustni seznam v E4, pri čemer uporabite barvni seznam kot vir. Z novim seznamom ste pripravljeni dodati pogojno oblikovanje.

Dodajte nov seznam barv v Excelu.

Uporabili bomo vnaprej določeno pravilo. Če želite dodati pogojno pravilo, ki spremeni barvo pisave v rdečo, ko je izbrana vrednost seznama rdeča, sledite tem korakom.

  • Ko izberete E4 (na novem listu z barvnim seznamom), kliknite Pogojno oblikovanje v skupini Slogi (zavihek Domov).
  • V podmeniju izberite Novo pravilo.
  • V zgornjem podoknu izberite možnost Oblikuj samo celice, ki vsebujejo.
  • V spodnjem razdelku spremenite prvo nastavitev spustnega menija (Cell Value) na Specific Text.
  • Spremenite drugi spustni meni, da vsebuje.
  • V tretji kontrolnik vnesite = A1, celica, ki vsebuje besedilno vrednost rdeča.
  • Kliknite gumb Oblika, kliknite jeziček Pisava, izberite rdečo in kliknite V redu. Slika B prikazuje formulo in obliko.
  • Znova kliknite V redu. Če izberete rdečo, je barva pisave rdeča, kot je prikazano v Slika C.

Navedite pogoje in obliko.

Pravilo pogojnega oblikovanja uporablja rdečo pisavo, ko na seznamu izberete rdečo.

Pri izbiri ostalih treh elementov seznama je pisava še vedno črna. Ustvarite novo pravilo za ostale tri z uporabo zgornjih navodil med uporabo nastavitev v Preglednica A. Lastnost fill lahko uporabite tudi za barvanje celice namesto pisave.


Kako dodati pogoj na spustni seznam v Excelu

Uporabniki Microsoft Excela, tukaj je hiter namig o dodajanju pogoja na spustni seznam.

Več o sistemu Windows

Za prikaz preprostega seznama lahko uporabite spustni seznam Microsoft Excel, čeprav včasih potrebujete malo več nadzora. Recimo, da imate osebje razpršeno po štirih regijah: sever, jug, vzhod in zahod. Želite delati z osebjem po regijah, ne z vsem osebjem. Takšna situacija zahteva dva spustna menija: enega, ki vam omogoča določitev regije, in drugega, ki prikazuje samo osebje v tej regiji. Lahko delate z lastnimi podatki ali prenesete predstavitvene datoteke .xlsx in .xls.

Opomba: Ta tehnika deluje samo z naborom podatkov v matričnem slogu. Prikazujem najpreprostejšo tehniko, vendar to ni edina tehnika. Če iščete Google, boste našli zapletene in včasih celo zapletene rešitve. Ko končamo, boste videli, da ta rešitev ni popolna, a vendar je super enostaven za izvedbo. Če vam ne uspe, poskusite namesto tega vdelati spustne kontrolnike.

Slika A prikazuje preprost nabor podatkov matričnega tipa, v katerem so predstavljeni predstavniki v vsaki od štirih regij. (Opazite, da je seznam regij v abecednem vrstnem redu od leve proti desni - to je edina resnična omejitev te tehnike.) Predstavniki so navedeni za vsako regijo in nekateri od teh predstavnikov so navedeni večkrat - to sem storil namenoma ne vpliva na tehniko.

Na podlagi tega preprostega nabora podatkov bomo ustvarili dva Excelova spustna seznama.

Potrebujemo dva Excelova spustna seznama. Prvi Excel spustni seznam bo določil pogoj, regijo. Drugi spustni seznam Excel bo prikazal predstavnike v tej regiji. Desno vidite oznake in formate v pripravi na ustvarjanje spustnega seznama Excel.

Če želite ustvariti seznam regij, naredite naslednje:

  • Izberite H2.
  • Kliknite jeziček Podatki in nato v skupini Orodja za podatke kliknite Preverjanje podatkov.
  • V spustnem meniju Dovoli izberite Seznam.
  • V kontrolnik Source vnesite (ali izberite) $ B $ 2: $ E $ 2 (Slika B).
  • Kliknite V redu.

V spustnem meniju so prikazana območja iz 2. vrstice.

Ko je pogojni spustni meni nameščen, je čas, da ustvarite dinamični spustni meni, ki prikazuje samo predstavnike regije, ki jih izbere pogojni spustni meni. Če na primer v pogojnem spustnem meniju izberete Jug, bodo na drugem seznamu prikazani Mary in Mike. Zdaj pa ustvarimo drugi spustni meni:

  • Izberite H3 in ponovite zgornje korake do 3. koraka.
  • V kontrolnik Source vnesite = Regija $ H $ 2 (Slika C). Formula se sklicuje na pogojni spust v H2.
  • Kliknite V redu.

Ta spustni meni uporabi izbrani element v pogojnem spustnem meniju, da določi njegov seznam.

Vsakič, ko v pogojnem spustnem meniju spremenite regijo, se spustni seznam rep ustrezno posodobi. Ne pozabite, da mora biti pogojni seznam besedila glave po abecednem vrstnem redu. Poleg tega boste opazili padec v Slika C ima prostor za štiri predmete, ker seznam vsebuje prazne prostore. Če ste Mary izbrisali, bi bila prva vrstica prazna, druga vrstica bi prikazovala Mikea, tretja in četrta vrstica pa bi bili še vedno prazni. To je ena tistih stvari, s katerimi morate živeti, ko se odločite za enostavno rešitev. Za večino od nas oba spustna menija delujeta dovolj dobro, kot je.


Razvijanje vtičnika¶

Zdaj lahko pridemo do posla. Najprej znova zaženite QGIS in nato odprite upravitelja vtičnikov. Naš novi vtičnik mora biti naveden v nameščen vtičniki. Kliknite aktivno. Na ikoni se mora prikazati nova ikona Vtičniki v spustnem meniju in na zgornji orodni vrstici. Zaženite vtičnik:

Kul! Škoda, da še nič ne naredi - vsi privzeti gumbi so, da zaprete okno. To bomo popravili naprej.

Vrnite se v mapo vtičnika. Odprite datoteko Python line_length_calculator.py v katerem koli urejevalniku kod ali besedila, na primer IDLE.

Ta datoteka, ki jo je samodejno ustvaril Plugin Builder, vsebuje vse potrebne elemente za hitro zagon vtičnika. Tako na primer iz modulov QGIS uvozi nekatere potrebne metode (pri skriptiranju nam tega ni bilo treba storiti, saj se večina potrebnih metod samodejno uvozi v QGIS-jevo konzolo Python). Oglejte si tudi, kako je vtičnik a razred ki vključuje veliko metod in da se sklic na vmesnik na samem začetku shrani kot self.iface. Vendar nas večina vsebine ne zanima.

Pomaknite se navzdol do samega dna datoteke in našli boste imenovano metodo teči. Ta odsek kode se aktivira vsakič, ko uporabnik aktivira vtičnik. Prilepite metodo lineLengthCalc iz skripta, ki smo ga ustvarili prej pod metodo zagon. Prepričajte se, da je pravilno razporejena!

Zdaj potrebujemo le priročen način, kako uporabnik pokliče metodo. Za to bomo morali narediti nekaj oblikovanja uporabniškega vmesnika.


2 odgovora 2

To, na kar se sklicujete, se pravzaprav imenuje "kaskadni spust". Ali spustna polja SharePoint, na katera se sklicujete, dejansko iščejo polja za iskanje na različnih seznamih? Če je odgovor pritrdilen, lahko uporabite SPServices in sledite tej vadnici. Mogoče izbiro drugega iskanja boste lahko filtrirali na izbrani vrednosti prvega iskalnega polja, če obstaja povezava med elementi na dveh seznamih.

Kot pravi @Jurgen, morate ustvariti Kaskadni spustni meni spodaj boste našli enostavno vadnico, ki ji sledite: Kaskadiranje spustnih polj iskanja


Poglej si posnetek: 3. Запуск Python программ скриптов. Основы Python