Coding+wx.TheClipboard

Plattformunabhängige GUIs mit wxWidgets.
Tompee
User
Beiträge: 18
Registriert: Sonntag 7. Oktober 2007, 17:13

Coding+wx.TheClipboard

Beitragvon Tompee » Mittwoch 14. November 2007, 20:52

Hi,

habe gerade angefangen mit wx-Python zu arbeiten und habe folgendes Problem.
Ich lade mit wx.TheClipboard einen String aus einem wx.TextCtrl in die Zwischenablage. Wenn ich diesen String unter Windows Vista in ein Textdokument einfüge, erhalte ich lauter chinesische Zeichen. :?
Unter Ubuntu auf meinem Laptop funktioniert das aber wunderbar.

Habe es auch schon mit

Code: Alles auswählen

wx.SetDefaultPyEncoding("iso-8859-1")


versucht, aber das klappt auch nicht.


Zusätzlich ist mir aufgefallen, das die Frame-Styles unter Vista nicht funktionieren. Also z.B.

Code: Alles auswählen

style = wx.CLOSE_BOX | wx.CAPTION | wx.MINIMIZE_BOX


Unter Ubuntu wunderbar, bei Vista zeigt er mir nur einen leeren Rahmen an.

Könnt ihr mir einen Tip geben?


Gruss Tompee
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: Coding+wx.TheClipboard

Beitragvon gerold » Mittwoch 14. November 2007, 21:23

Hallo Tompee!

Tompee hat geschrieben:Ich lade mit wx.TheClipboard einen String aus einem wx.TextCtrl in die Zwischenablage. Wenn ich diesen String unter Windows Vista in ein Textdokument einfüge, erhalte ich lauter chinesische Zeichen.

Keine Ahnung -- habe kein Vista.

Vielleicht hilft es, wenn du vorher den Unicode-String nach iso-8859-1 umzuwandelst. (Du verwendest ja die Unicode-Version von wxPython, oder?)

Code: Alles auswählen

text = myTextCtrl.GetValue()
text = text.encode("iso-8859-1")

Du kannst es auch noch mit anderen Encodings probieren. Z.B. mit "utf-8".

Tompee hat geschrieben:

Code: Alles auswählen

style = wx.CLOSE_BOX | wx.CAPTION | wx.MINIMIZE_BOX

Vielleicht solltest du es mal andersrum probieren. Ziehe nur die Flags von wx.DEFAULT_FRAME_STYLE ab, die du nicht haben willst.

Code: Alles auswählen

style = wx.DEFAULT_FRAME_STYLE ^ (wx.RESIZE_BOX | wx.RESIZE_BORDER)

Keine Ahnung ob das was hilft.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Tompee
User
Beiträge: 18
Registriert: Sonntag 7. Oktober 2007, 17:13

Beitragvon Tompee » Mittwoch 14. November 2007, 21:31

Hi Gerold,

danke dir, das mit den Frame-Styles funktioniert jetzt.

Mit dem encoding in der Zwischenablage noch nicht.

Code: Alles auswählen

data = self.text_log.GetValue()
data = data.encoding('iso-8859-1')
clipboard = wx.TextDataObject()
clipboard.SetData(str(data))
wx.TheClipboard.Open()
wx.TheClipboard.SetData(clipboard)
wx.TheClipboard.Close()


Dann fommt folgende Fehlermeldung:

'unicode' object has no attribute 'encoding'


Gruss Tompee
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Re: Coding+wx.TheClipboard

Beitragvon HWK » Donnerstag 15. November 2007, 08:01

gerold hat geschrieben:

Code: Alles auswählen

text = text.encode("iso-8859-1")
Tompee
User
Beiträge: 18
Registriert: Sonntag 7. Oktober 2007, 17:13

Beitragvon Tompee » Donnerstag 15. November 2007, 14:54

Oh sorry, da hatte ich nicht richtig hingeschaut.

Nun, der Fehler ist aber immer noch vorhanden. Lauter chinesische Zeichen.
In einer anderen Funktion, speichere ich den Inhalt aus dem gleichen TextCtrl in eine Datei. Da ist aber alles ok.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Donnerstag 15. November 2007, 14:57

Tompee hat geschrieben:Nun, der Fehler ist aber immer noch vorhanden. Lauter chinesische Zeichen.

Hallo Tompee!

Ich glaube, in diesem Fall musst du dich an die "wxPython-users"-Mainlinglist wenden. http://wxpython.org/maillist.php

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Tompee
User
Beiträge: 18
Registriert: Sonntag 7. Oktober 2007, 17:13

Beitragvon Tompee » Donnerstag 15. November 2007, 15:02

Ok, danke nochmals, ein Fehler wurde ja wenigstens behoben :lol:


Ich glaube hier besteht das gleiche Problem:

http://aspn.activestate.com/ASPN/Mail/M ... rs/2011302
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Donnerstag 15. November 2007, 15:27

Tompee hat geschrieben:http://aspn.activestate.com/ASPN/Mail/Message/wxPython-users/2011302

Hallo Tompee!

Das ist schon drei Jahre her. Ich würde einfach noch einmal nachfragen. ;-)

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder