Ajout d'un texte unicode a une ListCtrl
Bonjour,
Je suis passe recemment a la derniere version de Mageia et depuis, un des logiciels que je developpe et qui fonctionnait me pose des problemes.
Precisement, je recupere des information depuis une base de donee sqlite et je veux ajouter celles-ci dans un tableau ListCtrl via un ListItem.
Toutes mes donnees sont decodees en utf8, le probleme, lorsqu'un accent est present (ou un autre caractere non ASCII), la ligne affichee est vide.
J'ai isole et reproduit le probleme dans le code ci-dessous.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
# -*- coding: utf-8 -*-
import wx
class MainFrame(wx.Frame):
def __init__(self, parent) :
wx.Frame.__init__(self, parent)
wx.SetDefaultPyEncoding('utf8')
self.panel = wx.Panel(self, -1)
self.lbDocuments = wx.ListCtrl(self.panel, -1,style=wx.LC_REPORT)
self.lbDocuments.InsertColumn(0,'Document name',width=800)
self.docList=[]
def add_line(self,line):
self.docList.append(line)
def show_content(self):
k=0
for row in self.docList:
itm = wx.ListItem()
r=row.decode('utf8')
itm.SetText(r)
print type(r), r , "=>",itm.GetText()
itm.SetId(k)
self.lbDocuments.InsertItem(itm)
k=k+1
class MyApp(wx.App):
def OnInit(self):
self.SetAppName('TEST')
self.frame = MainFrame(None)
self.frame.Show(True)
self.SetTopWindow(self.frame)
self.frame.add_line('test 1')
self.frame.add_line('test éé')
self.frame.add_line('test 2')
self.frame.show_content()
return True
app = MyApp(False)
app.MainLoop() |
Est-ce un bug de wxpython ou un bug de moi ?
pour info, voici les versions de mes libs :
Code:
1 2 3 4 5 6 7 8 9
|
Python 2.7.9 (default, Dec 14 2014, 10:12:16)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import wx
>>> wx.VERSION
(3, 0, 1, 1, '')
>>> wx.GetDefaultPyEncoding()
'ISO-8859-1' |
Merci d'avance!