Why is my wxPython code skipping steps

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • epidemic
    New Member
    • Dec 2008
    • 1

    Why is my wxPython code skipping steps

    Hey everyone,

    Below is my code for Python. The reason I'm using times is so that the program runs and then goes off a little bit in the future. So what I do is set the time about a minute later than the current time. Then I run the program and when it is time, the boxes come up. Sometimes they will go the current location fine, but other times, usually when the computer is doing something.. like if I am loading a video on youtube, etc...the boxes will freeze at random points before they get to the set location. What is going on here!

    Also, the reason I have the time.sleep(0.5) in the while loop is because otherwise the program hogs up the computer's resources. Sorry for the sloppiness in the while loop.. just trying to test the code! Thanks everyone!

    Code:
    import wx
    import wx.lib
    import time
    import webbrowser
    
    class Window ( wx.MiniFrame ):
    
       def __init__ ( self ):
    
            mini = wx.MiniFrame(None, -1, 'A Small Frame', pos=(wx.DisplaySize()[0]-250,wx.DisplaySize()[1]), size=(250,80), style=wx.STAY_ON_TOP)
            mini.SetBackgroundColour("#506970")
            mini5 = wx.MiniFrame(mini, -1, 'Background Part', pos=(wx.DisplaySize()[0]-250,wx.DisplaySize()[1]+15), size=(250,65), style=wx.STAY_ON_TOP)
            mini5.SetBackgroundColour("green")
    
    
            stepZZZ2 = wx.StaticText(mini, -1, "X" , pos=(250-14-3, 0), size = (14,14) )
            stepZZZ2.SetForegroundColour("#F0F0F0")
            stepZZZ2.SetFont(wx.Font(9, wx.SWISS, wx.NORMAL, wx.FONTWEIGHT_BOLD, False, u'Tahoma'))
            stepZZZ2.SetCursor(wx.StockCursor(wx.CURSOR_HAND))
            stepZZZ2.Bind(wx.EVT_LEFT_DOWN, lambda e, s=self: self.closeOut(mini))
    
    
            str1 = "Random text"
            step5a = wx.StaticText(mini, -1, str1 , wx.Point(5, 0))
            step5a.SetFont(wx.Font(9, wx.SWISS, wx.NORMAL, wx.NORMAL, False, u'Tahoma'))
            step5a.SetForegroundColour("#F0F0F0")
    
    
            stepZZZ = wx.StaticText(mini, -1, "X" , pos=(250-14-3, 0), size = (14,14) )
            stepZZZ.SetForegroundColour("#F0F0F0")
            stepZZZ.SetFont(wx.Font(9, wx.SWISS, wx.NORMAL, wx.FONTWEIGHT_BOLD, False, u'Tahoma'))
            stepZZZ.SetCursor(wx.StockCursor(wx.CURSOR_HAND))
            stepZZZ.Bind(wx.EVT_LEFT_DOWN, lambda e, s=self: self.closeOut(mini))
    
    
            strALOT = "Random link"
            step5z = wx.StaticText(mini5, -1, strALOT,  pos = (0,0), size=(250,65), style=wx.ALIGN_CENTER)
            step5z.SetFont(wx.Font(9, wx.SWISS, wx.NORMAL, wx.FONTWEIGHT_BOLD, False, u'Tahoma'))
            step5z.SetForegroundColour("black")
            step5z.SetCursor(wx.StockCursor(wx.CURSOR_HAND))
            step5z.Wrap(230)
            step5z.Bind(wx.EVT_LEFT_DOWN, lambda e, s=self: s.loadLink())
            step5z.SetPosition( (  (250-step5z.GetSize()[0])/2.0, (65-step5z.GetSize()[1])/2.0   ))
    
    
            mini.Show(True)
            mini5.Show(True)
            currX = wx.DisplaySize()[0]-250
            currY = wx.DisplaySize()[1]
            currX2 = wx.DisplaySize()[0]-250
            currY2 = wx.DisplaySize()[1]+15
            for count in range(110):
                step5a.Update()
                step5z.Update()
                stepZZZ.Update()
                time.sleep(1/110.0)
                mini.Move( (currX, currY-(count+1)) )
                mini5.Move( (currX2, currY2-(count+1)) )
                
    
            mini.Show ( True )
            mini5.Show ( True )
       def closeOut(self,mini2):
          mini2.Destroy()
       def loadLink(self):
          webbrowser.open("http://www.google.com/")
     
    
    
    application = wx.PySimpleApp()
    timelater=time.mktime((2008,12,28,9,2,30,362,5,-1))
    count=0
    donebefore="no"
    doit="no"
    while(True):
        count=count+1
        timenow=time.mktime(time.gmtime())
        if(timenow > timelater and donebefore=="no"):
           doit="yes"
           donebefore="yes"
        else:
           doit="no"
           
        if(doit=="yes"):
            Window()
        time.sleep(.5)
        application.MainLoop()
Working...