[python] PyGTK

Ivo Stolpa pussa na pussa.cz
Pátek Září 3 17:14:29 CEST 2004


Ing. Ivo Štolpa napsal(a):

> Zdravím hadi,
>
> v PyGTK pro GTK++2.4 je u gtk.TextView metoda set_accepts_tab, která 
> umožní klávesou tab přejít na následující widget v pořadí místo 
> vložení tabelátoru do textu. Nevíte někdo čirou náhodou (nebo 
> důkladným studiem) jak téhož dosáhnout v PyGTK pro GTK++2.2?
>
> díky Ivo
>
Tak jsem na to nakonec přišel sám. Stačilo ošetřit událost 
"key_press_event". Což znamená v __init__ dopsat:

self.connect("key_press_event", self.key_pres_event)

a pak výše uvedenou metodu přidat.  Může vypadat nějak takto:

def key_press_event(self, widget, event):       
        if event.keyval == gtk.keysyms.Tab:
            widget.emit_stop_by_name("key_press_event")

Tím dojde po stisku klávesy Tab k ukončení události, čímž se do textview 
nepřidá tabelátor. Naopak se tím pádem provede standardní akce daná 
každému widgetu do vínku a to kýžený přechod na následující widget.

Ještě že po skušenostech z Delphi jsem si i v Pythonu nejdříve oddědil 
pro každý widget, který používám, svou vlastní třídu. Tím pádem jsem 
upravil jen tu mou třídu MyTextView.

Třeba je mezi pytoňákama ještě někdo, kdo používá GTK. A taky považuji 
za slušné zodpovědět dotaz, když znám řešení. I když v tomto případě 
odpovídám sám sobě.

Ivo

-- 
Ing. Ivo Štolpa

***********************************************
PUSSA software, Žižkova 13, 58601 Jihlava
e-mail: pussa na pussa.cz, ivo.stolpa na seznam.cz
stránky: http://www.pussa.cz
mobilní telefon: 602 735 124
pevná linka: 567 320 386
fax: 602 783 071
***********************************************




Další informace o konferenci Python