Help | Site Map
Connecting Tech Pros Worldwide
 
 
LinkBack Thread Tools
  #1  
Old July 30th, 2007, 07:35 AM
Jia Lu
Guest
 
Posts: n/a
Default How to write GUI and event separately in wxPython??

HI all

I am making an application with wxpython.
But I got a problem when I want to change the display string
according to process status.

I passed the frame to the processing function and use the
frame.txtobj to change displaying strings.

I found it is a bad method to do that.
Can any one tell me how to do that usually?
( How to separate GUI and Control code? )

Thank you.

  #2  
Old July 30th, 2007, 09:15 AM
Marc 'BlackJack' Rintsch
Guest
 
Posts: n/a
Default Re: How to write GUI and event separately in wxPython??

On Sun, 29 Jul 2007 23:34:14 -0700, Jia Lu wrote:
Quote:
I am making an application with wxpython.
But I got a problem when I want to change the display string
according to process status.
>
I passed the frame to the processing function and use the
frame.txtobj to change displaying strings.
>
I found it is a bad method to do that.
Can any one tell me how to do that usually?
( How to separate GUI and Control code? )
One possibility here is to give a callback function into the worker
function that gets called while the function does it's work. Simple
example:

def do_work(arguments, callback=lambda msg: None):
callback('Start processing.')
for percent in xrange(0, 101):
callback('finished %d%%...' % percent)
callback('Done.')

Ciao,
Marc 'BlackJack' Rintsch
  #3  
Old July 30th, 2007, 11:35 AM
Steve Holden
Guest
 
Posts: n/a
Default Re: How to write GUI and event separately in wxPython??

Marc 'BlackJack' Rintsch wrote:
Quote:
On Sun, 29 Jul 2007 23:34:14 -0700, Jia Lu wrote:
>
Quote:
> I am making an application with wxpython.
> But I got a problem when I want to change the display string
>according to process status.
>>
> I passed the frame to the processing function and use the
>frame.txtobj to change displaying strings.
>>
> I found it is a bad method to do that.
> Can any one tell me how to do that usually?
>( How to separate GUI and Control code? )
>
One possibility here is to give a callback function into the worker
function that gets called while the function does it's work. Simple
example:
>
def do_work(arguments, callback=lambda msg: None):
callback('Start processing.')
for percent in xrange(0, 101):
callback('finished %d%%...' % percent)
callback('Done.')
>
Quote:
Quote:
>>[x for x in xrange(0, 101)] == [y for y in xrange(101)]
True
Quote:
Quote:
Quote:
>>>
regards
Steve
--
Steve Holden +1 571 484 6266 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Skype: holdenweb http://del.icio.us/steve.holden
--------------- Asciimercial ------------------
Get on the web: Blog, lens and tag the Internet
Many services currently offer free registration
----------- Thank You for Reading -------------

  #4  
Old July 30th, 2007, 12:05 PM
Marc 'BlackJack' Rintsch
Guest
 
Posts: n/a
Default Re: How to write GUI and event separately in wxPython??

On Mon, 30 Jul 2007 06:32:55 -0400, Steve Holden wrote:
Quote:
Quote:
Quote:
>>[x for x in xrange(0, 101)] == [y for y in xrange(101)]
True
First I thought: Why the unnecessary list comprehension but to my surprise:

In [33]: xrange(42) == xrange(42)
Out[33]: False

That's strange.

Ciao,
Marc 'BlackJack' Rintsch
  #5  
Old July 30th, 2007, 02:55 PM
kyosohma@gmail.com
Guest
 
Posts: n/a
Default Re: How to write GUI and event separately in wxPython??

On Jul 30, 1:34 am, Jia Lu <Roka...@gmail.comwrote:
Quote:
HI all
>
I am making an application with wxpython.
But I got a problem when I want to change the display string
according to process status.
>
I passed the frame to the processing function and use the
frame.txtobj to change displaying strings.
>
I found it is a bad method to do that.
Can any one tell me how to do that usually?
( How to separate GUI and Control code? )
>
Thank you.
If you're doing a long running task that needs to send data
periodically to the GUI front-end for status, there's some good ways
listed here: http://wiki.wxpython.org/LongRunningTasks

The wiki seems down right now (8:40 CST 07/30/2007), but hopefully
it'll be up soon.

Mike

  #6  
Old July 30th, 2007, 04:25 PM
Steve Holden
Guest
 
Posts: n/a
Default Re: How to write GUI and event separately in wxPython??

Marc 'BlackJack' Rintsch wrote:
Quote:
On Mon, 30 Jul 2007 06:32:55 -0400, Steve Holden wrote:
>
Quote:
Quote:
> >>[x for x in xrange(0, 101)] == [y for y in xrange(101)]
>True
>
First I thought: Why the unnecessary list comprehension but to my surprise:
>
In [33]: xrange(42) == xrange(42)
Out[33]: False
>
That's strange.
>
Not so strange really. The two xrange objects are different (though I
confess I haven't looked to see how they implement comparisons), but
iterating over them produces the same result.

regards
Steve
--
Steve Holden +1 571 484 6266 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Skype: holdenweb http://del.icio.us/steve.holden
--------------- Asciimercial ------------------
Get on the web: Blog, lens and tag the Internet
Many services currently offer free registration
----------- Thank You for Reading -------------

  #7  
Old July 30th, 2007, 04:45 PM
Chris Mellon
Guest
 
Posts: n/a
Default Re: How to write GUI and event separately in wxPython??

On 7/30/07, Steve Holden <steve@holdenweb.comwrote:
Quote:
Marc 'BlackJack' Rintsch wrote:
Quote:
On Mon, 30 Jul 2007 06:32:55 -0400, Steve Holden wrote:
Quote:
>>[x for x in xrange(0, 101)] == [y for y in xrange(101)]
True
First I thought: Why the unnecessary list comprehension but to my surprise:

In [33]: xrange(42) == xrange(42)
Out[33]: False

That's strange.
Not so strange really. The two xrange objects are different (though I
confess I haven't looked to see how they implement comparisons), but
iterating over them produces the same result.

nitpick: list(xrange(42)) == list(xrange(42)) is slightly more concise
than the list comp..
  #8  
Old July 30th, 2007, 05:05 PM
Steve Holden
Guest
 
Posts: n/a
Default Re: How to write GUI and event separately in wxPython??

Chris Mellon wrote:
Quote:
On 7/30/07, Steve Holden <steve@holdenweb.comwrote:
Quote:
>Marc 'BlackJack' Rintsch wrote:
Quote:
>>On Mon, 30 Jul 2007 06:32:55 -0400, Steve Holden wrote:
>>>
>>> >>[x for x in xrange(0, 101)] == [y for y in xrange(101)]
>>>True
>>First I thought: Why the unnecessary list comprehension but to my surprise:
>>>
>>In [33]: xrange(42) == xrange(42)
>>Out[33]: False
>>>
>>That's strange.
>>>
>Not so strange really. The two xrange objects are different (though I
>confess I haven't looked to see how they implement comparisons), but
>iterating over them produces the same result.
>
>
nitpick: list(xrange(42)) == list(xrange(42)) is slightly more concise
than the list comp..
Indeed. I wonder if anyone will pick a nit with the nit you picked on my
nitpick ...

nitty-gritti-ly y'rs - steve
--
Steve Holden +1 571 484 6266 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Skype: holdenweb http://del.icio.us/steve.holden
--------------- Asciimercial ------------------
Get on the web: Blog, lens and tag the Internet
Many services currently offer free registration
----------- Thank You for Reading -------------

  #9  
Old July 30th, 2007, 08:05 PM
Marc 'BlackJack' Rintsch
Guest
 
Posts: n/a
Default Re: How to write GUI and event separately in wxPython??

On Mon, 30 Jul 2007 11:16:01 -0400, Steve Holden wrote:
Quote:
Marc 'BlackJack' Rintsch wrote:
Quote:
>First I thought: Why the unnecessary list comprehension but to my surprise:
>>
>In [33]: xrange(42) == xrange(42)
>Out[33]: False
>>
>That's strange.
>>
Not so strange really. The two xrange objects are different (though I
confess I haven't looked to see how they implement comparisons), but
iterating over them produces the same result.
They are different objects, so are range(23) and another range(23) but
those compare equal. Somehow I expected two seemingly equal `xrange`
objects compare equal too.

Ciao,
Marc 'BlackJack' Rintsch
  #10  
Old July 30th, 2007, 09:25 PM
star.public@gmail.com
Guest
 
Posts: n/a
Default Re: How to write GUI and event separately in wxPython??

On Jul 30, 11:42 am, "Chris Mellon" <arka...@gmail.comwrote:
Quote:
Quote:
Quote:
On Mon, 30 Jul 2007 06:32:55 -0400, Steve Holden wrote:
>
Quote:
Quote:
> >>[x for x in xrange(0, 101)] == [y for y in xrange(101)]
>True
Quote:
nitpick: list(xrange(42)) == list(xrange(42)) is slightly more concise
than the list comp..
Not that it has anything to do with this topic anymore, but I find the
list comp a bit clearer for expressing the thought 'each element in
one is the same as the coresponding element in the other, or: the
sequences are identical' -- the list() version would proabably have
had me going 'huh?' even longer ^_^.
--
[star for star in weaver]



  #11  
Old July 30th, 2007, 09:45 PM
Steve Holden
Guest
 
Posts: n/a
Default Re: How to write GUI and event separately in wxPython??

star.public@gmail.com wrote:
Quote:
On Jul 30, 11:42 am, "Chris Mellon" <arka...@gmail.comwrote:
>
Quote:
Quote:
>>>On Mon, 30 Jul 2007 06:32:55 -0400, Steve Holden wrote:
>>>> >>[x for x in xrange(0, 101)] == [y for y in xrange(101)]
>>>>True
>
Quote:
>nitpick: list(xrange(42)) == list(xrange(42)) is slightly more concise
>than the list comp..
>
Not that it has anything to do with this topic anymore, but I find the
list comp a bit clearer for expressing the thought 'each element in
one is the same as the coresponding element in the other, or: the
sequences are identical' -- the list() version would proabably have
had me going 'huh?' even longer ^_^.
--
[star for star in weaver]
Here's another one, a little more obscure still, but only valid in 2.5
because of all():
Quote:
Quote:
Quote:
>>all(x==y for (x, y) in zip(xrange(0, 101), xrange(101)))
True
Quote:
Quote:
Quote:
>>>
regards
Steve
--
Steve Holden +1 571 484 6266 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Skype: holdenweb http://del.icio.us/steve.holden
--------------- Asciimercial ------------------
Get on the web: Blog, lens and tag the Internet
Many services currently offer free registration
----------- Thank You for Reading -------------
  #12  
Old July 30th, 2007, 09:45 PM
Steve Holden
Guest
 
Posts: n/a
Default Re: How to write GUI and event separately in wxPython??

star.public@gmail.com wrote:
Quote:
On Jul 30, 11:42 am, "Chris Mellon" <arka...@gmail.comwrote:
>
Quote:
Quote:
>>>On Mon, 30 Jul 2007 06:32:55 -0400, Steve Holden wrote:
>>>> >>[x for x in xrange(0, 101)] == [y for y in xrange(101)]
>>>>True
>
Quote:
>nitpick: list(xrange(42)) == list(xrange(42)) is slightly more concise
>than the list comp..
>
Not that it has anything to do with this topic anymore, but I find the
list comp a bit clearer for expressing the thought 'each element in
one is the same as the coresponding element in the other, or: the
sequences are identical' -- the list() version would proabably have
had me going 'huh?' even longer ^_^.
--
[star for star in weaver]
Here's another one, a little more obscure still, but only valid in 2.5
because of all():
Quote:
Quote:
Quote:
>>all(x==y for (x, y) in zip(xrange(0, 101), xrange(101)))
True
Quote:
Quote:
Quote:
>>>
regards
Steve
--
Steve Holden +1 571 484 6266 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Skype: holdenweb http://del.icio.us/steve.holden
--------------- Asciimercial ------------------
Get on the web: Blog, lens and tag the Internet
Many services currently offer free registration
----------- Thank You for Reading -------------

 

Bookmarks

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are Off
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

What is Bytes?

We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights. Get the best answers to your questions from over network members.
Post your question now . . .
It's fast and it's free

Popular Articles