wxPython fast and slow

iu2 israelu at elbit.co.il
Sun Mar 8 09:52:12 CET 2009


On Mar 6, 6:52 pm, Mike Driscoll <kyoso... at gmail.com> wrote:
> ...

> Can you post a sample application so we can try to figure out what's
> wrong? You might also cross-post this to thewxPythonmailing list.
> They might know.
>
> Mike- Hide quoted text -
>
> - Show quoted text -

Hi, thanks for your reply

Here is a sample application:

----------------------------------------------------------

import wx
import time

class My_frame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, -1, 'Moving panel')
        self.surface = p = wx.Panel(self, size=(300, 130))
        self.square = wx.Panel(p, -1, size=(100, 100), pos=(0, 30))
        self.square.Bind(wx.EVT_PAINT, self.on_paint_square)

        btn_move = wx.Button(p, -1, 'Move panel', pos=(0, 0))
        self.Bind(wx.EVT_BUTTON, self.move_panel, btn_move)

        self.Fit()

    def move_panel(self, evt):
        def gen():
            for x in range(200):
                yield x
            for x in range(200, 0, -1):
                yield x
        for x in gen():
            self.square.SetPosition((x, 30))
            time.sleep(0.005)


    def on_paint_square(self, evt):
        square = evt.GetEventObject()
        dc = wx.BufferedPaintDC(square)
        dc.Pen = wx.Pen('blakc', 2)
        dc.Brush = wx.Brush('light blue')
        dc.DrawRectangle(0, 0, *square.GetSize())

app = wx.PySimpleApp()
My_frame().Show()
app.MainLoop()

----------------------------------------------------------

Press the button and the panel moves to the right and then back to the
left.
While PyScripter is running the panel moves at a certain speed. You
can run the application from the Windows explorer with the same speed.
You don't need to run it from PyScripter.
When PyScripter is closed, the application runs much less quickly.
I experienced this on two PC-s.
Maybe this behavior is not even related to wxPython but to the sleep
command. I don't know...

Thanks
iu2





More information about the Python-list mailing list