RichTextCtrl Sqlite Speichern/Abrufen

Plattformunabhängige GUIs mit wxWidgets.
Antworten
Benutzeravatar
pengo
User
Beiträge: 15
Registriert: Dienstag 10. Oktober 2006, 22:28

Hallo python-forum,

ich habe folgendes Problem, ich habe "en klenes" Programm geschrieben,
in dem ich den RichTextCtrl verwende um Text zu gestalten, soll was ganz
primitives sein ^^, dazu gibts noch ein paar ander Eingabe-Felder.

Nun möchte ich mein Text in einer sqlite3 DB speichern, dazu verwenden
ich folgenden Code zum Auslesen des RichTextCtrl.

Code: Alles auswählen

        
handler = rt.RichTextXMLHandler()
stream = cStringIO.StringIO()
if not handler.SaveStream(self.text[4].GetBuffer(), stream):
    return
self.text_value[4] = stream.getvalue()
Ich schreib dann text_value danach in die DB.

Nun wollt ich den Code wieder aus der DB laden und in
den RichTextCtrl schreiben. Jetzt wird allerdings der Text mit
Tags in den RichTextCtrl geschrieben.

Ich hab nun ein paar sachen mit cStringIO und LoadSave und LoadFile
ausprobiert ging aber alles irgendwie nicht so wie ich das wollte ^^. Mir
würde jetzt noch einfallen das ich den Text aus DB lade und in einer XML
Datei zwischen Speicher und dann mit LoadFile lade. Finde ich persönlich aber nicht so schön ^^.

Würde mich also freuen wenn mir jemand nen Tipp gibt ^^ wie man
das vielleicht noch anderst machen kann.

Vielen Dank

Gruß pengo
Benutzeravatar
pengo
User
Beiträge: 15
Registriert: Dienstag 10. Oktober 2006, 22:28

Hallo zusammen,

geht eigentlich ganz einfach ^^

Code: Alles auswählen

'''Nur ein kleines Bsp.'''
import wx.richtext as rt
import cStringIO 

rtctrl = rt.RichTextCtrl(panel2, -1, 
                   style=rt.RE_MULTILINE|wx.VSCROLL|wx.HSCROLL)

handler = rt.RichTextXMLHandler()
stream = cStringIO.StringIO(str(text_aus_db_unicode))
handler.LoadStream(rtctrl.GetBuffer(), stream)
rtctrl.Refresh() 
da hats Gehirn mal wieder net so funktinoiert wie es sollte
hatte eigentlich bloß mal str() vergessen und das hat mich
dann leicht verwirrt :D und soweiter naja und so vergingen Stunden und
Tage :-).

Grüße pengo
Antworten