ich bin ziemlicher Anfänger mit wxPython. Habe mir gerade die Videotutorials von Mr. Dale angesehen und mir gerolds Verbessungersvorschläge angesehen (vielen Dank für die anschaulichen Erklärungen!).
Ich spiele jetzt gerade etwas mit wxPython herum und bin dabei auf ein Problem gestoßen: Ich würde gerne Text aus dem Clipboard entnehmen und in ein wx.TextCtrl einfügen. Ich habe einen Beispielcode gefunden (http://wiki.wxpython.org/ClipBoard), der bei mir so aber nicht funktioniert. Ich vermute, der Code von der Seite ist veraltet.
Ich habe es jetzt probiert, so umzusetzen. Wenn ich das Script ausführe, bekomme ich allerdings die Meldung:
Code: Alles auswählen
Traceback (most recent call last):
File "./cc.py", line 29, in <module>
frame = MainWindow()
File "./cc.py", line 14, in __init__
EVT_IDLE(self,self.paste)
NameError: global name 'EVT_IDLE' is not defined
So sieht mein Code aus:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
import wx
version = "0.8"
class MainWindow(wx.Frame):
def __init__(self,parent = None,id = -1,title = "clipcat - "+version):
wx.Frame.__init__(
self, parent, id, title, size = (400,200),
style = wx.DEFAULT_FRAME_STYLE | wx.NO_FULL_REPAINT_ON_RESIZE
)
self.control = wx.TextCtrl(self,-1,style = wx.TE_MULTILINE)
EVT_IDLE(self,self.paste)
self.Show(True)
def paste(self, evt):
do = wxTextDataObject()
wxTheClipBoard.Open()
success = wxTheClipBoard.GetData(do)
wxTheClipBoard.Close()
if success:
self.control.SetValue(do.GetText())
else:
self.control.SetValue("No data.")
app = wx.PySimpleApp()
frame = MainWindow()
app.MainLoop()
del frame
del app
Ubuntu Gutsy Gibbon
Python 2.5.1
python-wxgtk2.8
Ich würde mich über Hilfe sehr freuen =)