> > trochu som sa "hral s LEDkami" a chcel by som tam dorobiť funkciu blikania > lediek. >
[...] > def cyklus_bliknutia (self, button, name): > for name in range(4): > if button.get_active(): > self.leds[int(name)].set_from_file("LED_off.png") # ak > je aktívne zhasne LEDku > else: > self.leds[int(name)].set_from_file("LED_on.png") # ak > nie je aktívne, zapne LEDku > > Viem, že je to blobosť hneď z niekoľkých dôvodov: > 1, vo funckii 'blikanie' nevolám funkciu 'cyklus_bliknutia' pretože > netuším, ako ju zavolať :) > 2, vo funckii 'cyklus_bliknutia' mám síce for, ale zasa neviem, ako > otestovať postupne všetky tlačítka, keďže to ide cez 'name'. > > Jde o to, co jsme psali u té předchozí otázky: Je tam Gtk.main(), což je Event loop, která se stará o to, aby poslala event tam, kam patří. Takže když máš button.connect("toggled", handler, ...) tak ta event loop, musí v okamžiku, kdy se s tlačítkem stane toggle zavolat handler. Ty potřebuješ, aby v době, kdy chceš blikat, Ti event loop v pravidelných intervalech říkala: Teď blikni. https://gist.github.com/petrblahos/9769152 To je ten GLib.timeout_add. Všimni si, že já nechám to "blikni" zavolat ikdyž je tlačítko vypnuté, a v handleru blink_timer se dívám, jestli je to tlačítko sepnuté. Tím pádem ale nebliknu hned jak někdo zmáčkne tlačítko, ale bliknu to 1/2 sekundy. Navíc to blikání je konstantní, a nedívá se, co bylo na obrázku, když se začalo blikat, takže celkově nic moc. No, takhle musí programátor přemýšlet. Hmm. [...] > > A teraz otázky: > Je nejaké presné poradie, podľa ktorého je potrebné uvádzať tieto premenné > v zátvorke? > Môžem s nimi pracovať lubovoľne? Mám na mysli tak, že keby som napr. chcel > moje dve pseudofunckie zlučiť do jednej, môžem použiť niečo ako (self, > btn_blikanie, button, name)? A ak áno, v akom poradí? > [...] Já bych se moc nechtěl pouštět do vysvětlování těchto konceptů přes mail, a navíc na tak pokročilém tématu, jako je tvorba UI. Bohužel Ti nedokážu poradit vhodnou literaturu na začátek, ale zkus si pročíst python.cz, protože v nějakém uceleném tutoriálu, nebo knize, to bude popsané konzistentněji, než to dokážeme my, tady na listu. Tak mě napadlo, jak říkal Moss v IT Crowdu, díle Moss a Němec, občas je potřeba zkusit něco nového. Takže jestli chceš, udělám Ti korespondenční kurz tím způsobem, že dostaneš úkol, ten vyřešíš (nebo ne), já Ti to opravím, a pošlu další úkol. Teda s tím, že nemám rozmyšleno, jestli dokážu udělat ty správné úkoly :-) -- Petr ____________________ http://pysk.blog.root.cz/
_______________________________________________ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz