[Tutor] Questions about wxEvents

Marc Tompkins marc.tompkins at gmail.com
Thu Dec 6 19:03:32 CET 2007


Hot diggety!  Exactly what I was trying to come up with.  Thank you!

On Dec 6, 2007 9:38 AM, Jeff Younker <jeff at drinktomi.com> wrote:

> While I can't help you with the wx specific part of the question, I canoffer
> help with the reuse question.     Here is one approach.  Add an
> controller identifier to fpCallback.  Then use lambda expressions for the
> actual callback, where the lambda expressions pass in a fixed value for
> the
> identifier.
>
> Modified code:
>
>         self.fp1 = filebrowse.FileBrowseButtonWithHistory(pnl, -1,
> size=(300, -1),
>             labelText='', fileMask='*.*', fileMode=wx.OPEN,
>             dialogTitle='Select the file containing UCF claims',
>             changeCallback= lambda x: self.fpCallback('fp1', x)
>         )
>         self.fp2 = filebrowse.FileBrowseButtonWithHistory(pnl, -1,
> size=(300, -1),
>             labelText='', fileMask='FI*.*', fileMode=wx.OPEN,
>             dialogTitle='Select the form-image file - generally starts
> with FI',
>             changeCallback= lambda x: self.fpCallback('fp2', x)
>         )
>         [snip]
>     def fpCallback(self, controlID, evt):
>         print evt.__dict__
>         print help(evt)
>         value = evt.GetString()
>         [snip]
>
>
>
> - Jeff Younker - jeff at drinktomi.com -
>
>
> On Dec 6, 2007, at 9:12 AM, Marc Tompkins wrote:
>
> I have a specific question - how can I generalize a
> FileBrowseButtonWithHistory - and I realized, as I was trying to word my
> question, that my real question is a bit more generic.
>
> First, the specific question:  The FileBrowseButtonWithHistory requires a
> callback override and some custom code to straighten out handling the
> history.  So far, so good.  However, I wish to use more than one FBBWH on my
> form, and I can't figure out how to re-use the custom callback so it will
> work for both controls.  (It makes me sick to my stomach when I look at my
> code and see duplicate blocks!)   Don't get me wrong - it's working right
> now, it's just that my code is fugly and I want to clean it up.
>
> In more general terms, how can I set more than one control to use the same
> block of code as a custom callback, and figure out at runtime which control
> I'm responding to?  Doesn't the Event or CommandEvent carry any information
> about itself?
> I've tried this:
>
>         [snip]
>         self.fp1 = filebrowse.FileBrowseButtonWithHistory(pnl, -1,
> size=(300, -1),
>             labelText='', fileMask='*.*', fileMode=wx.OPEN,
>             dialogTitle='Select the file containing UCF claims',
> changeCallback= self.fp1Callback)
>         self.fp2 = filebrowse.FileBrowseButtonWithHistory(pnl, -1,
> size=(300, -1),
>             labelText='', fileMask='FI*.*', fileMode=wx.OPEN,
>             dialogTitle='Select the form-image file - generally starts
> with FI', changeCallback= self.fp2Callback)
>         [snip]
>     def fp1Callback(self, evt):
>         print evt.__dict__
>         print help(evt)
>         value = evt.GetString()
>         [snip]
>     def fp2Callback(self, evt):
>         print evt.__dict__
>         print help(evt)
>         value = evt.GetString()
>         [snip]
>
> All I get from "print evt.__dict__" is: {'_string':
> u'E:\\ultrahld\\report\\FILE'}
>
> and all I get from help is:
> Help on instance of LocalEvent in module wx.lib.filebrowsebuttonobject:class instance(object)
>  |  instance(class[, dict])
>  |
>  |  Create an instance without calling its __init__() method.
>  |  The class must be a classic class.
>  |  If present, dict must be a dictionary or None.
>  |
>  |  Methods defined here:
>  |
>  |  __abs__(...)
>  |      x.__abs__() <==> abs(x)
>  |
> ...  in other words, I might as well have typed "help(object)".
> I only know that the method "evt.GetString()" exists because the example
> in the demo uses it.
> I've Googled, and Gmaned, and read the wx docs (such as they are), but I'm
> not seeing anything I can use.
>
> I know that this is a wxPython question, and that this is the Python
> list... but y'all have answered some wx questions in the past, and I hate to
> join another list for one question.   If I must, I will... but thanks in
> advance for any light you can shed.
>
> --
> www.fsrtechnologies.com _______________________________________________
> Tutor maillist  -  Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor
>
>
>


-- 
www.fsrtechnologies.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20071206/7c278548/attachment.htm 


More information about the Tutor mailing list