[Python] Tkinter e Canvas.create_text
Daniele.zambelli
daniele.zambelli a inwind.it
Dom 7 Feb 2010 18:52:40 CET
Salve, ho un problema che non riesco a risolvere.
La libreria a cui sto lavorando dà all'utente la possibilità di creare degli
oggetti testo in un canvas di Tkinter.
Funziona tutto senza problemi se il testo non contiene lettere accentate, se
invece la stringa da visualizzare contiene lettere accentate allora non viene
visualizzato niente. Esempio:
>>> Text(ip, 3, 3, 'lettera accentata: è')
non appare niente.
Se alla stringa antepongo il carattere "u" allora funziona correttamente:
>>> Text(ip, 3, 4, u'lettera accentata: è')
il testo viene visualizzato nella posizione corretta.
La libreria inizia con la riga:
# -*- coding: iso-8859-15 -*-
A complicare la faccenda ho notato che su alcune macchine il mio programma
soffre di questo problema, su altre no.
Ho provato a cambiare font ma il problema persiste:
self._font=tkFont.Font(family="Nimbus Sans L", size=self._width)
## self._font=tkFont.Font(family="Helvetica", size=self._width)
Il comando che crea il testo è:
self._id=self._cv.create_text(self._getbounds(), text=self._gettext(),
fill=self._color, font=self._font)
Dove _getbounds() restituisce le coordinate e _gettext() restituisce la
stringa da visualizzare.
Io vorrei evitare di chiedere all'utente di anteporre la lettera "u" alle
stringhe che contengono caratteri particolari. Come potrei fare?
Grazie per l'attenzione.
--
Daniele www.fugamatematica.blogspot.com
giusto!
_o) (o_ (o_ _o) nel verso
-./\\ //\.- //\ /\\ forse è perché non guardiamo le cose
_\_V V_/_ V_/ \_V Quando non ci capiamo,
Maggiori informazioni sulla lista
Python