Wxpython Python Tutorial

import wx
import cPickle
import pprint
class TestFrame(wx.Frame):
    fieldNames = ["name", "addr1", "addr2","city", "state", "zip", "phone", "email"]
    def __init__(self):
        fieldData = {}
        for name in self.fieldNames:
            tc = getattr(self, name)
            fieldData[name] = tc.GetValue()
        cdo = wx.CustomDataObject("ContactDictFormat")
        cdo.SetData(cPickle.dumps(fieldData))
        tdo = wx.TextDataObject(pprint.pformat(fieldData))
        dataobj = wx.DataObjectComposite()
        dataobj.Add(cdo)
        dataobj.Add(tdo)
        if wx.TheClipboard.Open():
            wx.TheClipboard.SetData(dataobj)
            wx.TheClipboard.Close()
        
        cdo = wx.CustomDataObject("ContactDictFormat")
        if wx.TheClipboard.Open():
            success = wx.TheClipboard.GetData(cdo)
            wx.TheClipboard.Close()
        if success:
            data = cdo.GetData()
            fieldData = cPickle.loads(data)
            for name in self.fieldNames:
                tc = getattr(self, name)
                tc.SetValue(fieldData[name])
app = wx.PySimpleApp()
app.MainLoop()