Re: [python] Gtk LED on/off (začiatočník)

2014-03-30 Tema obsahu Petr Blahos
2014-03-26 12:59 GMT+01:00 taz t...@picasa.cz:

 Ja bych se do korespondencniho kurzu taky prihlasil. Sam se nedokopu k
 nicemu.

 Beru Tě na vědomí, a ozvu se. Ber to tak, že z mojí strany je to taky
experiment, a nevím, jestli se to  podaří.

Pro zájemce - diváky: Domluvili jsme se s Lukášem, že to zatím bude
neveřejné, a budeme vás po nějakém čase informovat formou nějakého
digestu.
--
Petr
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz

Re: [python] Gtk LED on/off (začiatočník)

2014-03-30 Tema obsahu Jakub Vysoky
skoda :)) live by bylo super.. tak digest co nejdrive!! idealne pravidelne :))

2014-03-30 20:33 GMT+02:00 Petr Blahos petrbla...@gmail.com:
 2014-03-26 12:59 GMT+01:00 taz t...@picasa.cz:

 Ja bych se do korespondencniho kurzu taky prihlasil. Sam se nedokopu k
 nicemu.

 Beru Tě na vědomí, a ozvu se. Ber to tak, že z mojí strany je to taky
 experiment, a nevím, jestli se to  podaří.

 Pro zájemce - diváky: Domluvili jsme se s Lukášem, že to zatím bude
 neveřejné, a budeme vás po nějakém čase informovat formou nějakého
 digestu.
 --
 Petr





 ___
 Python mailing list
 python@py.cz
 http://www.py.cz/mailman/listinfo/python

 Visit: http://www.py.cz



-- 
Jakub Vysoky

mob: +420 605 852 377
jab: jakub.vys...@gmail.com
twit: https://twitter.com/kvbik
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Gtk LED on/off (začiatočník)

2014-03-30 Tema obsahu Roman Zbořil
Dne neděle, 30. března 2014 20:33:42 UTC+2 Petr Blahos napsal(a):
 2014-03-26 12:59 GMT+01:00 taz t...@picasa.cz:
 
 
 
 
 Ja bych se do korespondencniho kurzu taky prihlasil. Sam se nedokopu k 
 nicemu. 
 
   

 
 
 
 
 Beru Tě na vědomí, a ozvu se. Ber to tak, že z mojí strany je to taky
 experiment, a nevím, jestli se to  podaří.
 
 
 Pro zájemce - diváky: Domluvili jsme se s Lukášem, že to zatím bude
 
 
 neveřejné, a budeme vás po nějakém čase informovat formou nějakého
 digestu.
 --
 Petr

Pokud bude veřejné tak bych měl také zájem se zúčastnit.
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Gtk LED on/off (začiatočník)

2014-03-26 Tema obsahu Lukáš Sliacky
Ahoj Petr,

ďakujem za odpoveď.
Vidím, že som si na začiatok nevybral úplne jednoduchú úlohu :) Bral som to, že 
sa Python naučím nejak za jazdy, ale vidím, že si budem musieť podrobnejšie 
naštudovať niektoré témy. 

Čo sa týka Tvojej ponuky, pokiaľ by Ti to nerobilo problémy, som určite za.
Síce si to tiež asi neviem ideálne predstaviť, ale však, prečo to neskúsiť? (Ak 
si to predstavuješ za nejakú finančnú, resp. nejakú bartrovú odmenu, podmienky 
si môžeme dohodnúť mailom).

Čo sa týka public diskusie, mne osobne to nevadí a pokiaľ bude Petr súhlasiť, 
môžeme to vyskúšať.

Lukáš
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Gtk LED on/off (začiatočník)

2014-03-25 Tema obsahu Lukáš Sliacky
Ahoj Petr,

trochu som sa hral s LEDkami a chcel by som tam dorobiť funkciu blikania 
lediek.
Rozšíril som tabuľku:
okno = Gtk.Table(5, 2, True)

Pridal button:
btn_blikanie = Gtk.ToggleButton(Blikanie)
btn_blikanie.connect(toggled, self.blikanie)
btn_blikanie.set_border_width(2)

a samozrejme som zhavaroval na samotnej funckii...

Snažil som sa to urobiť nejak takto:

def blikanie(self, btn_blikanie):
if btn_blikanie.get_active():
print ('Zapnuté')
else:
print ('Vypnuté')

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'.

Vedel by si mi s tým, prosím, trochu pomôcť?

Ale priznám sa tiež, že mám trochu hokej v (self, button, name):... 

Ty si vytvoril funkciu:

def led_button_handler(self, button, name):
self.leds[int(name)].set_from_file(
LED_on.png if button.get_active() else LED_off.png,
)

a v zátvorke máš (self, button, name):

Self sa používa pravdepodobne univerzálne vo všetkých funciách. Button si 
použil, pretože vo funkcii testuješ button.get_active a name pretože potrebuješ 
ovládať LEDky podľa ich názvov: str(i).

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í?

Snažil som sa to spísať čo najpresnejšie, ale so svete pythonu (a 
programovania) som skutočne krátko a tak je možné, že som sa vyjadroval blbo. 
Ak je potrebné niečo upresniť, resp. spýtať sa logickejšie, stačí napísať.

Ďakujem za odpovede.
Lukáš
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Gtk LED on/off (začiatočník)

2014-03-25 Tema obsahu Petr Blahos

 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

Re: [python] Gtk LED on/off (začiatočník)

2014-03-25 Tema obsahu Jakub Vysoky
ad neco noveho udelejte to tady pres konferenci, nebo kdekoliv jinde,
ale public - myslim, ze by to mohlo byt zajimave pro spoustu lidi to
alespon sledovat (nebo se i pripojit?) a treba na to pak i vselijak
navazat.. co vy a to?

2014-03-25 20:32 GMT+01:00 Petr Blahos petrbla...@gmail.com:
 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



-- 
Jakub Vysoky

mob: +420 605 852 377
jab: jakub.vys...@gmail.com
twit: https://twitter.com/kvbik
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Gtk LED on/off (začiatočník)

2014-03-25 Tema obsahu Ales Zoulek
Mne by se to rozhodne libilo (public). A jestli to neni prace navic...

A.

--
Ales Zoulek
+420 604 332 515
Jabber: ales.zou...@gmail.com
--


2014-03-25 21:40 GMT+01:00 Jakub Vysoky ja...@borka.cz:

 ad neco noveho udelejte to tady pres konferenci, nebo kdekoliv jinde,
 ale public - myslim, ze by to mohlo byt zajimave pro spoustu lidi to
 alespon sledovat (nebo se i pripojit?) a treba na to pak i vselijak
 navazat.. co vy a to?

 2014-03-25 20:32 GMT+01:00 Petr Blahos petrbla...@gmail.com:
  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



 --
 Jakub Vysoky

 mob: +420 605 852 377
 jab: jakub.vys...@gmail.com
 twit: https://twitter.com/kvbik
 ___
 Python mailing list
 python@py.cz
 http://www.py.cz/mailman/listinfo/python

 Visit: http://www.py.cz

___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz

Re: [python] Gtk LED on/off (začiatočník)

2014-03-21 Tema obsahu Lukáš Sliacky
Wow, Petr, 

funguje to presne tak, ako som chcel. Idem sa v tom povŕtať, aby som úplne 
pochopil ten Tvoj kód.

Naozaj ďakujem za ochotu.
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Gtk LED on/off (začiatočník)

2014-03-19 Tema obsahu Petr Blahos
Ahoj,

zkus tohle:
https://gist.github.com/petrblahos/9648800
a klidně se ptej. Ovšem připomínám, že s Gtk nedělám, takže je možné,
že Best Practices jsou někde jinde.

Je tam problém, že se mnohokrát volá set_from_file. Správně by bylo si ty
2 obrázky na začátku nahrát, a potom je jen použít.
--
Petr




2014-03-18 18:19 GMT+01:00 Lukáš Sliacky lu...@sliacky.eu:

 Ahoj Petr,

 ďakujem za ochotu. Rozumiem tomu, čo si chcel povedať, ale žiaľ, toto je
 môj prvý program, takže sa s tým celkom dobre trápim. (Hotovým zdrojákom
 ako tak rozumiem, ale ak mám vyprodukovať niečo z hlavy, je to problém)

 Snažil som sa Tvoj pseudokód preložiť do reálneho kódu, ale na to mám
 príliš málo vedomostí a skúseností.

 Výsledok je tu:

 from gi.repository import Gtk
 import sys

 class LedControl(Gtk.Window):

 def __init__(self):
 Gtk.Window.__init__(self, title=LED Control)
 self.set_border_width(6)
 self.set_default_size(200, 250)

 okno = Gtk.Table(4, 2, True)
 self.add(okno)

 img_LED_on = Gtk.Image()
 img_LED_on.set_from_file(LED_on.png)
 #~ self.add(img_LED_on)

 img_LED_off = Gtk.Image()
 img_LED_off.set_from_file(LED_off.png)
 #~ self.add(img_LED_off)

 widget_LED1 = Gtk.Image()
 widget_LED2 = Gtk.Image()
 widget_LED3 = Gtk.Image()
 widget_LED4 = Gtk.Image()

 widget1 = Gtk.Image()
 widget2 = Gtk.Image()
 widget3 = Gtk.Image()
 widget4 = Gtk.Image()

 button_LED_1 = Gtk.ToggleButton(LED 1)
 button_LED_1.connect(toggled, self.LED_OnOff, 1)
 button_LED_1.set_border_width(2)

 button_LED_2 = Gtk.ToggleButton(LED 2)
 button_LED_2.connect(toggled, self.LED_OnOff, 2)
 button_LED_2.set_border_width(2)

 button_LED_3 = Gtk.ToggleButton(LED 3)
 button_LED_3.connect(toggled, self.LED_OnOff, 3)
 button_LED_3.set_border_width(2)

 button_LED_4 = Gtk.ToggleButton(LED 4)
 button_LED_4.connect(toggled, self.LED_OnOff, 4)
 button_LED_4.set_border_width(2)

 led_widgets = {
 button_LED_1.id: widget1,
 button_LED_2.id: widget2,
 button_LED_3.id: widget3,
 button_LED_4.id: widget4
 }

 okno.attach(button_LED_1, 0, 1, 0, 1)
 okno.attach(button_LED_2, 0, 1, 1, 2)
 okno.attach(button_LED_3, 0, 1, 2, 3)
 okno.attach(button_LED_4, 0, 1, 3, 4)

 #~ widget1.set_from_image(img_LED_off)
 #~ widget1.set_from_image(img_LED_off)
 #~ widget1.set_from_image(img_LED_off)
 #~ widget1.set_from_image(img_LED_off)

 okno.attach = (widget_LED1, 1, 2, 2, 3)
 okno.attach = (widget_LED2, 1, 2, 0, 1)
 okno.attach = (widget_LED3, 1, 2, 1, 2)
 okno.attach = (widget_LED4, 1, 2, 2, 3)

 def LED_OnOff(self, okno, name):
 if okno.get_active():
 status = on
 led_widgets[okno.id].set_from_image(img_LED_on)
 else:
 status = off
 led_widgets[okno.id].set_from_image(img_LED_off)
 print(Tlačítko LED, name, zmenilo stav na, status)


 app = LedControl()
 app.connect(delete-event, Gtk.main_quit)
 app.show_all()
 Gtk.main()

 Našiel by sa niekto ochotný a hlavne trpezlivý, kto by ma posunul kúsok
 ďalej?
 Ďakujem.

 Lukáš
 ___
 Python mailing list
 python@py.cz
 http://www.py.cz/mailman/listinfo/python

 Visit: http://www.py.cz




-- 

http://pysk.blog.root.cz/
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz

Re: [python] Gtk LED on/off (začiatočník)

2014-03-18 Tema obsahu Petr Blahos
Ahoj, já v Gtk nedělám, ale aspoň tohle:

v LED_OnOff je proměnná img_LED, která není nikde jinde.

vůbec v tom kódu nevidím důvod, proč by se něco mělo rozsvítit, nebo
zhasnout.

img_LED_on a img_LED_off je widget - nějaký ten prvek, který se někam
umístí. Je to
jeden prvek, tak se umístí na jedno místo. Pokud jej chceš vícekrát, musíš
jich vyrobit
více, a každý z nich umístit. Jedna věc je, že si určitě můžeš nahrát
obrázek jednou,
a pak jej přiřadit více prvkům, jako třeba (pseudo kód, Gtk neumím)

img_led_on = load_image(led_on.png)  # asi neco v gdk
img_led_off = load_image(led_off.png)

widget1 = Gtk.Image()
widget2 = Gtk.Image()
widget3 = Gtk.Image()

button1 = Gtk.ToggleButton(...)
button2 = Gtk.ToggleButton(...)
button3 = Gtk.ToggleButton(...)

# a napr:
led_widgets = {
button1.id: widget1,
button2.id: widget2,
button3.id: widget3,
}

# nastavení obrázku:
widget1.set_from_image(img_led_on)
widget2.set_from_image(img_led_on)
widget3.set_from_image(img_led_on)
# ...

No a pak bude handler:

def LED_OnOff(self, okno, name):
if okno.get_active():
led_widgets[okno.id].set_from_image(img_led_on)
else:
led_widgets[okno.id].set_from_image(img_led_off)
# nektere frameworky vyzaduji volani nejakeho refresh

Nevím, jak je to s ID okna v GTK, možná se identifikuje jinak než přes ID.
Určitě je tu spousta lidí, kteří upřesní to GTK, ale takhle bych to
vprincipu
viděl jako jednoduše pochopitelné.

--
Petr



2014-03-17 22:53 GMT+01:00 lu...@sliacky.eu:

 Ahojte,

 v Pythone som úplný začiatočník a chcem urobiť program, ktorý simuluje
 zapínanie a vypínanie LEDiek v závislosti na ToggleButtonoch.

 Momentálne mám hotové toto:

 from gi.repository import Gtk
 import sys

 class LedControl(Gtk.Window):

 def __init__(self):
 Gtk.Window.__init__(self, title=LED Control)
 self.set_border_width(6)
 self.set_default_size(200, 250)

 okno = Gtk.Table(4, 2, True)
 self.add(okno)

 img_LED_on = Gtk.Image()
 img_LED_on.set_from_file(LED_on.png)
 self.add(img_LED_on)

 img_LED_off = Gtk.Image()
 img_LED_off.set_from_file(LED_off.png)
 self.add(img_LED_off)

 button_LED_1 = Gtk.ToggleButton(LED 1)
 button_LED_1.connect(toggled, self.LED_OnOff, 1)
 button_LED_1.set_border_width(2)

 button_LED_2 = Gtk.ToggleButton(LED 2)
 button_LED_2.connect(toggled, self.LED_OnOff, 2)
 button_LED_2.set_border_width(2)

 button_LED_3 = Gtk.ToggleButton(LED 3)
 button_LED_3.connect(toggled, self.LED_OnOff, 3)
 button_LED_3.set_border_width(2)

 button_LED_4 = Gtk.ToggleButton(LED 4)
 button_LED_4.connect(toggled, self.LED_OnOff, 4)
 button_LED_4.set_border_width(2)

 okno.attach(button_LED_1, 0, 1, 0, 1)
 okno.attach(button_LED_2, 0, 1, 1, 2)
 okno.attach(button_LED_3, 0, 1, 2, 3)
 okno.attach(button_LED_4, 0, 1, 3, 4)

 okno.attach(img_LED_off, 1, 2, 0, 1)
 okno.attach(img_LED_on, 1, 2, 1, 2)
 #~ okno.attach(img_LED_off, 1, 2, 2, 3)
 #~ okno.attach(img_LED_on, 1, 2, 3, 4)

 def LED_OnOff(self, okno, name):
 if okno.get_active():
 status = on
 else:
 status = off
 img_LED=0
 print(Tlačítko LED, name, zmenilo stav na, status)

 app = LedControl()
 app.connect(delete-event, Gtk.main_quit)
 app.show_all()
 Gtk.main()

 ale nedarí sa mi rozchodiť svietenie LEDiek (LED_on.png / LED_off.png) na
 pozíciách vedľa jednotlivých tlačítok (LED 1 je vedľa tlačítka LED 1).

 Tiež sa chcem spýtať, prečo sa načítaný obrázok zobrazuje len jeden krát.
 Napr. keď chcem načítať obrázok LED_on.png 2x pod sebou, zobrazí sa vždy
 len raz:
 okno.attach(img_LED_on, 1, 2, 0, 1)
 okno.attach(img_LED_on, 1, 2, 1, 2)
 (Spodný obrázok sa nezobrazuje.)

 Našiel by sa niekto, kto by mi vedel poradiť? (Ak sú potrebné dodatočné
 informácie, rád ich obratom poskytnem.)

 Ďakujem.
 ___
 Python mailing list
 python@py.cz
 http://www.py.cz/mailman/listinfo/python

 Visit: http://www.py.cz




-- 

http://pysk.blog.root.cz/
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz

Re: [python] Gtk LED on/off (začiatočník)

2014-03-18 Tema obsahu Lukáš Sliacky
Ahoj Petr, 

ďakujem za ochotu. Rozumiem tomu, čo si chcel povedať, ale žiaľ, toto je môj 
prvý program, takže sa s tým celkom dobre trápim. (Hotovým zdrojákom ako tak 
rozumiem, ale ak mám vyprodukovať niečo z hlavy, je to problém)

Snažil som sa Tvoj pseudokód preložiť do reálneho kódu, ale na to mám príliš 
málo vedomostí a skúseností.

Výsledok je tu:

from gi.repository import Gtk
import sys

class LedControl(Gtk.Window):

def __init__(self):
Gtk.Window.__init__(self, title=LED Control)
self.set_border_width(6)
self.set_default_size(200, 250)

okno = Gtk.Table(4, 2, True)
self.add(okno)

img_LED_on = Gtk.Image()
img_LED_on.set_from_file(LED_on.png)
#~ self.add(img_LED_on)
  
img_LED_off = Gtk.Image()
img_LED_off.set_from_file(LED_off.png)
#~ self.add(img_LED_off)

widget_LED1 = Gtk.Image()
widget_LED2 = Gtk.Image()
widget_LED3 = Gtk.Image()
widget_LED4 = Gtk.Image()

widget1 = Gtk.Image()
widget2 = Gtk.Image()
widget3 = Gtk.Image()
widget4 = Gtk.Image()

button_LED_1 = Gtk.ToggleButton(LED 1)
button_LED_1.connect(toggled, self.LED_OnOff, 1)
button_LED_1.set_border_width(2)

button_LED_2 = Gtk.ToggleButton(LED 2)
button_LED_2.connect(toggled, self.LED_OnOff, 2)
button_LED_2.set_border_width(2)

button_LED_3 = Gtk.ToggleButton(LED 3)
button_LED_3.connect(toggled, self.LED_OnOff, 3)
button_LED_3.set_border_width(2)

button_LED_4 = Gtk.ToggleButton(LED 4)
button_LED_4.connect(toggled, self.LED_OnOff, 4)
button_LED_4.set_border_width(2)

led_widgets = {
button_LED_1.id: widget1,
button_LED_2.id: widget2,
button_LED_3.id: widget3,
button_LED_4.id: widget4
}

okno.attach(button_LED_1, 0, 1, 0, 1)
okno.attach(button_LED_2, 0, 1, 1, 2)
okno.attach(button_LED_3, 0, 1, 2, 3)
okno.attach(button_LED_4, 0, 1, 3, 4)

#~ widget1.set_from_image(img_LED_off)
#~ widget1.set_from_image(img_LED_off)
#~ widget1.set_from_image(img_LED_off)
#~ widget1.set_from_image(img_LED_off)

okno.attach = (widget_LED1, 1, 2, 2, 3)
okno.attach = (widget_LED2, 1, 2, 0, 1)
okno.attach = (widget_LED3, 1, 2, 1, 2)
okno.attach = (widget_LED4, 1, 2, 2, 3)

def LED_OnOff(self, okno, name):
if okno.get_active():
status = on
led_widgets[okno.id].set_from_image(img_LED_on)
else:
status = off
led_widgets[okno.id].set_from_image(img_LED_off)
print(Tlačítko LED, name, zmenilo stav na, status)


app = LedControl()
app.connect(delete-event, Gtk.main_quit)
app.show_all()
Gtk.main()

Našiel by sa niekto ochotný a hlavne trpezlivý, kto by ma posunul kúsok ďalej?
Ďakujem.

Lukáš
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


[python] Gtk LED on/off (začiatočník)

2014-03-17 Tema obsahu lukas
Ahojte,

v Pythone som úplný začiatočník a chcem urobiť program, ktorý simuluje 
zapínanie a vypínanie LEDiek v závislosti na ToggleButtonoch.

Momentálne mám hotové toto:

from gi.repository import Gtk
import sys

class LedControl(Gtk.Window):
 
def __init__(self):
Gtk.Window.__init__(self, title=LED Control)
self.set_border_width(6)
self.set_default_size(200, 250)

okno = Gtk.Table(4, 2, True)
self.add(okno)

img_LED_on = Gtk.Image()
img_LED_on.set_from_file(LED_on.png)
self.add(img_LED_on)

img_LED_off = Gtk.Image()
img_LED_off.set_from_file(LED_off.png)
self.add(img_LED_off)

button_LED_1 = Gtk.ToggleButton(LED 1)
button_LED_1.connect(toggled, self.LED_OnOff, 1)
button_LED_1.set_border_width(2)

button_LED_2 = Gtk.ToggleButton(LED 2)
button_LED_2.connect(toggled, self.LED_OnOff, 2)
button_LED_2.set_border_width(2)

button_LED_3 = Gtk.ToggleButton(LED 3)
button_LED_3.connect(toggled, self.LED_OnOff, 3)
button_LED_3.set_border_width(2)

button_LED_4 = Gtk.ToggleButton(LED 4)
button_LED_4.connect(toggled, self.LED_OnOff, 4)
button_LED_4.set_border_width(2)

okno.attach(button_LED_1, 0, 1, 0, 1)
okno.attach(button_LED_2, 0, 1, 1, 2)
okno.attach(button_LED_3, 0, 1, 2, 3)
okno.attach(button_LED_4, 0, 1, 3, 4)

okno.attach(img_LED_off, 1, 2, 0, 1)
okno.attach(img_LED_on, 1, 2, 1, 2)
#~ okno.attach(img_LED_off, 1, 2, 2, 3)
#~ okno.attach(img_LED_on, 1, 2, 3, 4)

def LED_OnOff(self, okno, name):
if okno.get_active():
status = on
else:
status = off
img_LED=0
print(Tlačítko LED, name, zmenilo stav na, status)

app = LedControl()
app.connect(delete-event, Gtk.main_quit)
app.show_all()
Gtk.main()

ale nedarí sa mi rozchodiť svietenie LEDiek (LED_on.png / LED_off.png) na 
pozíciách vedľa jednotlivých tlačítok (LED 1 je vedľa tlačítka LED 1).

Tiež sa chcem spýtať, prečo sa načítaný obrázok zobrazuje len jeden krát. Napr. 
keď chcem načítať obrázok LED_on.png 2x pod sebou, zobrazí sa vždy len raz:
okno.attach(img_LED_on, 1, 2, 0, 1)
okno.attach(img_LED_on, 1, 2, 1, 2)
(Spodný obrázok sa nezobrazuje.)

Našiel by sa niekto, kto by mi vedel poradiť? (Ak sú potrebné dodatočné 
informácie, rád ich obratom poskytnem.)

Ďakujem.
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz