I would like to set a dictionary as an event object, but SetEventItem is expecting an object of type wxObject. What's the best way to go around this? 
Basically, I have a settings dialog. If the "Apply All" button is pressed, an event is generated which will propagate up to some parent window, which can then set the settings to all the appropriate children. I have these settings stored in a dictionary. Is there a better way to do this? This seemed the simplest to me.
SetEventObject is used to set the originating GUI element not to pass data to the event listeners ... 
you could certainly add a GetValue method to your GUI element that returned your dictionary... and then use GetEventObject().GetValue() to get your dictionary
alternatively the wx.lib.pubsub module is designed to pass data to event subscribers and I would recommend using this, for this particular use case ...
wxPython - Set dictionary as event object