[pygyk] TextBuffer & Window
Marco Pensallorto
n4rc0s@gmail.com
Sab 18 Nov 2006 09:26:25 CET
2006/11/18, gallows <g4ll0ws@gmail.com>:
> Sto imparando un po' il python e mi sono ritrovato a scrivere un piccolo
> editor di testo. Vorrei chiedere ai guru pythoniani:
bene...bene...molto bene :)
> 1) E` possibile usare il TextBuffer con la codifica iso8859-1(5)? Di
> default sembra usare la utf-8, infatti quando apro con `emacs' o `less'
> un file creato da questo editor i caratteri "particolari" (accentate
> ecc.) li vedo strambi.
Premesso che le codifiche fanno venire il mal di testa a tutti ed io
ieri sera ho anche bevuto un po' ... (mi sa che quest'anno mi iscrivo
all'anonima alcolisti :P)
io direi... usa UTF-8 che ti passa.
- http://www.async.com.br/faq/pygtk/index.py?req=show&file=faq04.010.htp
- pydoc unicode
> 2) Pių importante: come posso intercettare il segnale di chiusura
> inviato dal window manager?
- http://www.async.com.br/faq/pygtk/index.py?req=show&file=faq10.006.htp
ovvero, riprendendo il tuo codice qualcosa del tipo:
[code]
def quit(self, widget, document):
res = False # keep default behaviour
if document.modified :
if not dialog.question('Sure?', '%s is modified but not
saved!\nDo you want
quit?' % document.name):
res = True # mmmmhhh... not so sure about leavin'
return res
self.win0.connect('delete', quit, document)
[/code]
che pero' io farei piu' pitonescamente in una linea:
[code]
self.win0.connect('delete', lambda w,e,d: d.modified and not
dialog.question('Sure?','%s is modified but not saved!\nDo you want
quit?' % d.name))
[/code]
Nel sistema di gestione degli eventi delle pygtk il primo gestore che
restituisce True interrompe la propagazione dell'evento.
se il gestore on_delete restiruisce True l'evento e' considerato
intercettato e non si propaga ulteriormente ergo la finestra _non_
viene distrutta.
quindi non c'č bisogno di chiamare destroy, fallo fare al wm :)
ciao,
N4.
Maggiori informazioni sulla lista
palermo