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