Okenski programi se izvajajo na GUI (Vir:1). Grafični uporabniški vmesnik je danes tako standarden, da včasih pozabljamo, kaj vse se dogaja v ozadju. Pogledali si bomo osnove oken. Na namizju imamo pripravljeno bližnjico Okna osnove.
Avtor: Boštjan Šuhel
E-pošta: bostjan.suhel@gmail.com
2021-302-29
Na slovenski izdaji imamo že nameščene vsa razvojna orodja, strežnike, vaje in ustrezna dovoljenja, da vse poteka gladko. To je glavna prednost slovenske izdaje. Začnemo zelo visoko, z delujočimi vajami in ne izgubljamo pozornosti, časa in energije s postavljanjem sistema. Vzdrževanje računalniških sistemov prepuščamo drugim predmetom. Delo z delujočimi projekti in vajami je danes skoraj edini možen pristop k razvoju. Učenje programskega jezika, kot je Python, je seveda podvrženo pedagoškim dinamikam in sklopom, kakor vsak drugi jezik. Prehitevanja pomenijo zaostajanje. Python je že drugo leto prvi razvojni jezik in seveda zaobjema veliko področij. Kam se bomo usmerili je odvisno od delovanja, idej in hotenj. So pa osnove, nadaljevanje in izbrane vsebine dobra osnova za odločanje, da sploh vemo o čem se odločati. Delujoči spletni in okenski projekti, kot orkestracija tehnologij izgleda zmaguje 🙂
Ta vsebina je samo za naročnike
Qt Designer
Za razvoj okenske aplikacije uporabimo QtDesigner (Vir:2). Zelo pohitri razvoj želenega izgleda okna vključno z vsemi standardnimi gradniki. Projekt je zapisan v xml (Vir:3) in je namenjen razvoju okenskega programa v poljubnem jeziku. Projekt ima končnico ui (Slika:2) in ga kasneje prevedemo v okenski objekt v pythonu, c-ju itd.. Učenci ne ogledujejo originalnih vaj, ker jih ohranjamo za druge udeležence izobraževanja. Ta primer samo pokaže, kako so vaje nastajale. Kasneje vse potrebne datoteke ki so potrebne za razvoj programa skopiramo na namizje in tam počnemo z njimi kar želimo.
Univerzalna zasnova z enim orodjem skrajša razvojni čas za poljubni jezik. Okenski programi so v svoji osnovo povsem navadni programi, ki jim dodamo okenski razred. Pri pisanju okenskih programov se je dobro zavedati, da smo v več opravilnem operacijskem sistemu in da imajo vsa okna isti podatkovni vhod (miška, tipkovnica) in da vsak okenski program izvršuje vrsto ukazov in rezultate posreduje v izhodno vrsto.
./naredi
V slovenski izdaji imamo na namizju bližnjico Python okna, ki nas prestavi v terminalsko okno in na mapo Docoments/Python/okna. Ta mapa je del podatkovne strukture uporabnika pi.
Slovenska izdaja je pedagoški produkt, zato skriptna datoteka poenostavlja izvajanje poučevanja in pomaga predavatelju in dijakom, da delo poteka hitro in logično.
Če nam je vaja všeč, jo skripta skopira na namizje, kjer se lahko posvetimo vsaki datoteki projekta posebej. Slovenska izdaja je popolnoma odprt projekt, učenci imajo vsa administratorska pooblastila. Se zgodi, da se namerno ali nenamerno pokvari kopija slovenske izdaje. Popravljanje traja cca. 8 minut kolikor profesor rabi, da zapeče svežo kopijo slovenske izdaje na sd (lahko je tudi usb ključek ali npr. SSD) kartico. To se v razredu zgodi cca. 2 x na teden, nekaj se pa mora dogajat….. 🙂 Namerna brisanja se kaznujejo z 10 sklecami 🙂
Vajo 10 pogledamo z ukazom ./naredi 10. Vaji 10 je ime vpis. Skripta najprej prevede Qt designer projekt vpis_qt5.ui v vpis_qt5.py. To naredimo z pyuic5 vpis_qt5.ui -o vpis_qt5.py. Tako smo s pomočjo prevajalnika, ki iz xml zapisa izgleda okenskega programa, naredi okenski razred v pythonu. Okenski razred izpišemo in poženemo program python3 vpis.py. Tu že vidimo delujoči program in ga lahko preizkusimo :). Vendar pozor!
Če nam je program všeč (oz. če ga v šolskem procesu ravnokar obdelujemo) si želimo, da primer ostane nedotaknjen in da bo služil še ostalim udeležencem. Enostavno zapremo okenski program in v terminalu se pojavi vprašanje Ponastavi namizje in dodaj datoteke? (d). Pritisnemo d in…..
Sedaj imamo ponastavljen (zbrisane vse datoteke, ki jih je na zaslon zapisal kdorkoli) zaslon z vsemi bližnjicami in datotekami potrebnimi za študij našega primera. Opisani postopek se je izkazal kot dober tekom praktičnega dela v razredu. Ni rečeno, da obstaja boljši pristop (skoraj verjetno obstaja) vendar ga še iščemo……. 🙂
vpis.py
Kliknemo na vpis.py. Odpre se program vpis.py v Thonny urejevalniku. Pritisnemo gumb Run in poženemo okenski program Vpis. Če pogledamo v kodo opazimo v prvi vrstici from vpis_qt5 import Ui_Form, Iz vpis_qt uvozimo razred Ui_Form. Python pravopis pri uvozu predpostavi končnico .py.
vpis_qt5.py
Vidimo opozorilo, da se te datoteke ne spreminja. Naredil jo je prevajalnik pyuic5, ki je uporabil projekt vpis_qt.ui za tvorjenje datoteke vpis_qt.py. Vidimo razred Ui_form, ki ga uporabimo v programu vpis.py. Ta vmesni korak je nujen. Da se napisati okenske programe »na roke«, vendar bodo naknadne spremembe oblike okna od nas zahtevale ogromno napora, tako se enostavno ne dela.
Svet Elektrotehnike
Z Qt designerjem popravimo izgled našega okenskega programa. Zahteva nekaj poskušanja, ampak je sigurno veliko hitreje, kakor pa spremembe delati ročno. Na levi strani imamo vse standardne gradnike , na desni strani se nam odprejo lastnosti gradnikov in čaramo…. 🙂
Skripta na omizju je že pripravljena za prevajanje in zagon spremenjenega okna.
Na namizju imamo bližnjico Terminal, ki odpre terminal v mapi Desktop. Izvedemo ./naredi. Tako nekako se danes razvijajo okenski programi. Opisana metoda je preizkušena v razredu, kjer po nekaj ponovitvah vsi zelo hitro pišemo programe in spreminjamo izgled oken.
Naslednjič
Naslednjič si bomo pogledali grafične zmožnosti okenskih programov. Za udobno spremljanje nadaljevanja je morda čas, da si naredite svojo kopijo Slovenske izdaje (Vir:4).
Stvari se izredno hitro dogajajo. Na naši šoli imamo postavljen vzorčni laboratorij nove mehatronike. Gre za eko koncept, kar pomeni mala električna moč, učila so stalno priklopljena (kar pomeni odsotnost krmilnih elementov – stikal) in cena materiala je samo okoli 200€ na delovno mesto. Vmes se ukvarjamo z 3D tiskalniki, zgrajenimi okoli kartičnega računalnika in namensko razvitega programja, ki je zastonj dostopno. Obstaja veliko kompletov, ki so zelo poceni in omogočajo izdelavo zelo poceni 3D tiskalnikov. V novi mehatroniki trenutno rabimo ohišja (še vedno imamo učila na leseni deski 4x8x20. In pa podvozja robotov (Vir:5), kar bo poenostavilo vse.
Na teh področjih postanejo okenski programi šele res zanimivi.
Viri:
https://en.wikipedia.org/wiki/Graphical_user_interface
https://doc.qt.io/qt-5/qtdesigner-manual.html
https://sl.wikipedia.org/wiki/XML
http://77.38.33.244/indexorodja.php
http://77.38.33.244/projekti/robot/tinkercad.php