Danes nas zanima bližnjica Python grafika. Gre za sklop vaj , ki pokažejo nekatere zmožnosti grafike v okenskih programih.
Avtor: Boštjan Šuhel
E-pošta: bostjan.suhel@gmail.com
2022-304-33
Trenutni izgled namizja slovenske izdaje(Vir:02). Grafični uporabniški vmesnik(Vir:01) je okolje za delovanje okenskih programov.
Python grafika
Bližnjica Python grafika odpre terminalno okno, kjer v naslovu dobimo navodilo za ukaz ./naredi 01 do 08. Kar pomeni, da imamo na voljo 8 vaj iz grafike. Naučili se bomo kako uporabljati grafične elemente v okenskih programih.
Ta vsebina je samo za naročnike
Ukaz ‘/naredi 01 požene okenski program črta. Vidimo tudi izpis programa 01, ampak samo del, ki ga lahko sami spreminjamo. Okenski programi so, kot smo si pogledali v prejšnjem nadaljevanju, sestavljeni iz programa in razreda, ki opisuje samo okno. Ta razred uporabimo v našem programu z uporabo ukaza import.
Ko zapremo okenski program se v terminalu pojavi vprašanje ali ponastavim omizje in dodam vse datoteke vaje 01 na namizje. Če pritisnemo samo enter se ne zgodi nič, če pritisnemo d in enter se ponastavi celotno namizje in skopira vse datoteke, ki so potrebne za izvedbo vaje 01 na namizje. Tak način se je v praksi pokazal kot najučinkovitejši.
Ko imamo vse datoteke na namizju se začne pravo delo. Program crta.py je glavni program, tega lahko spremenimo. Crta_qt5.py je razred, ki opisuje naše okno. Tega razreda ne spreminjamo mi, ampak za spremembo okna uporabimo orodje Qt 5 Designer.
Crta.py
Sedaj imamo na namizju samo datoteke, ki pripadajo projektu črta. Na namizju imamo bližnjico Terminal, ki nas prestavi v mapo Desktop (namizje). Tu je že pripravljena skriptna datoteka »naredi«. Le-ta je prilagojena tako, da moramo samo odtipkati ./naredi. Na novo se prevede crta_qt5.ui v crta_qt5.py. Crta_qt5.py je razred ki opisuje izgled (torej lastnosti) našega okna. Crta_qt5.py razred se potem uvozi (import) v crta.py. Program crta.py izriše črto na prazno okno :). Torej najprej s pomočjo Python bližnjic osnove, grafika, okna, opencv in gpio izberemo projekt in ga prekopiramo na namizje. Le-tu se lahko v projekt poglobimo.
Ker v tej vaji ne bomo spreminjali lastnosti okna, lahko samo kliknemo na crta.py. Pred nastavljeno se odpre v urejevalniku za python programe Thonny (Vir:03). Thonny je IDE za python (kakor recimo mednarodno predstavljena slovenska izdaja, ki vse opravlja v spletnem okolju). Z ukazom Run poženemo program crta.py in prikaže se črta :). Podobna logika je pri vseh okenskih in navadnih python programih, ki jih učimo na slovenski izdaji.
Boljša crta.py
Sedaj je nastopil trenutek, ko lahko napišem svoj prvi okenski program, ki uporablja grafiko. Ugotavljanje razlike med prvotnim programom in programom, ki izpiše 8 vodoravnih črt eno pod drugo prepuščam bralcem. Vidimo, pa, da je pisanje okenskih programov z uporabo razredov lahko zabavno.
Crta2.py
Sledimo že opisanemu postopku in na povezavi Python grafika izberemo ./naredi 04
Odpremo in poženemo v Thonny-ju crta2.py. Tako lahko naredimo, ker ne bomo spreminjali lastnosti okna.
Vidimo, da lahko s pomočjo gumba Nariši, črto narišemo in s pomočjo gumba Zbriši, le-to zbrišemo :). Upam, da ste si že namestili slovensko izdajo, ker je polna primerov v python-u, c-ju, php-ju, html-ju, css-u in javascript-u. Gre namreč za masovno sklicevanje na pretekle izkušnje in pridobljeno znanje. Da programiranje postane res zabavno in se začnejo rojevati res uporabni projekti, je potrebno kar veliko treninga 🙂 . Za tiste, ki ste sledili do sem, vam to ne bo težka naslednja naloga.
Spremeni program crta2.py tako, da se bo izpisalo in izbrisalo osem vodoravnih črt, podobno, kakor v spremenjenem programu crta.py ? Hmmmm 🙂
Naslednjič
Naslednjič nas čaka zopet kratek izlet v C okolje. Raziskali bomo same meje realno časovnega delovanja v operacijskem sistemu brez nedovoljenih poseganj v samo jedro operacijskega sistema.
Videli in dokazali bomo, da lahko pokrivamo dogodke do nekako 100µs. S C-jem bomo iskali same meje, python ne zaostaja veliko, pa vendarle zaostaja, zato so veliki projekti še vedno vsi pisani v C-ju, ki je naravni jezik linux-a. Ali če hočete, morda je python namenjen produkcijskemu , C (in strojni jezik) pa razvojnemu delu (ne jemljite tega preveč dobesedno prosim). Še morda nekaj o Viru 04. Gre za slovensko izdajo postavljeno pri meni doma. Za to pošastjo se skriva rpi4 z 2Gbyte rama in priključen preko USB3.0 na SSD 0.5Tbyte. Pri IP številkah je problem, ker eduroam omrežje dovoljuje samo domene, zato vir 04 če ste direktno ali indirektno priklopljeni na to omrežje ne bo deloval. Rešitev je domače, arnes ali mobilno omrežje npr. Si pa na viru 04 vedno lahko pogledate v vaje in delujoče projekte. Pri delujočih projektih govorimo o orkestraciji razvojnih tehnologij. Postavljena je prva vzorčna učilnica nove mehatronike, ki med drugim uporablja vaje iz slovenske izdaje. Ključno je delo z MS teamsi in z nekaterimi portali, ki uporabljajo google prijavo. Znanje učencev na pametnih telefonih, uporabi pisarne je odlično. Poizkusi poenotenja formatov zapisa na glavnih platformah (MS, Linux, Anroid, Apple) je stalen proces. Raspberry je med tem prodan v 40M primerkih!! Imamo nov OS z imenom raspberry OS. Je prva strojna oprema na področju kartičnih računalnikov in prva evropska strojna oprema po spektrumu po skoraj 40 letih!!!. Prodaja se po celem svetu, je vodilna in ima evropske korenine. Vzporedno se v temeljih spreminja ožičenje naprav na splošno. Ukinjajo se signalne povezave, naprave so stalno pod napetostjo, krmilni elementi se selijo v podsklope, poraba se zmanjšuje za nekaj 10x. Slabo se piše kontaktorjem, relejem in mehanskim stikalom. Imajo hudo konkurenco v polprevodniških stikalih. Moderen razvoj se začne z uporabo medsebojno povezanih modulih. Sledi združevanje modulov na eno tiskano vezje. V ozadju se godi stalen razvoj na siliciju :). Brez panike vse skupaj se poenostavlja, potreben je samo pravi pogled na vse skupaj.
Viri:
https://en.wikipedia.org/wiki/Graphical_user_interface
http://77.38.33.244/indexorodja.php
https://thonny.org/
http://77.38.33.244/