By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,096 Members | 1,568 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,096 IT Pros & Developers. It's quick & easy.

Why is my wxPython code skipping steps

P: 1
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!

Expand|Select|Wrap|Line Numbers
  1. import wx
  2. import wx.lib
  3. import time
  4. import webbrowser
  5.  
  6. class Window ( wx.MiniFrame ):
  7.  
  8.    def __init__ ( self ):
  9.  
  10.         mini = wx.MiniFrame(None, -1, 'A Small Frame', pos=(wx.DisplaySize()[0]-250,wx.DisplaySize()[1]), size=(250,80), style=wx.STAY_ON_TOP)
  11.         mini.SetBackgroundColour("#506970")
  12.         mini5 = wx.MiniFrame(mini, -1, 'Background Part', pos=(wx.DisplaySize()[0]-250,wx.DisplaySize()[1]+15), size=(250,65), style=wx.STAY_ON_TOP)
  13.         mini5.SetBackgroundColour("green")
  14.  
  15.  
  16.         stepZZZ2 = wx.StaticText(mini, -1, "X" , pos=(250-14-3, 0), size = (14,14) )
  17.         stepZZZ2.SetForegroundColour("#F0F0F0")
  18.         stepZZZ2.SetFont(wx.Font(9, wx.SWISS, wx.NORMAL, wx.FONTWEIGHT_BOLD, False, u'Tahoma'))
  19.         stepZZZ2.SetCursor(wx.StockCursor(wx.CURSOR_HAND))
  20.         stepZZZ2.Bind(wx.EVT_LEFT_DOWN, lambda e, s=self: self.closeOut(mini))
  21.  
  22.  
  23.         str1 = "Random text"
  24.         step5a = wx.StaticText(mini, -1, str1 , wx.Point(5, 0))
  25.         step5a.SetFont(wx.Font(9, wx.SWISS, wx.NORMAL, wx.NORMAL, False, u'Tahoma'))
  26.         step5a.SetForegroundColour("#F0F0F0")
  27.  
  28.  
  29.         stepZZZ = wx.StaticText(mini, -1, "X" , pos=(250-14-3, 0), size = (14,14) )
  30.         stepZZZ.SetForegroundColour("#F0F0F0")
  31.         stepZZZ.SetFont(wx.Font(9, wx.SWISS, wx.NORMAL, wx.FONTWEIGHT_BOLD, False, u'Tahoma'))
  32.         stepZZZ.SetCursor(wx.StockCursor(wx.CURSOR_HAND))
  33.         stepZZZ.Bind(wx.EVT_LEFT_DOWN, lambda e, s=self: self.closeOut(mini))
  34.  
  35.  
  36.         strALOT = "Random link"
  37.         step5z = wx.StaticText(mini5, -1, strALOT,  pos = (0,0), size=(250,65), style=wx.ALIGN_CENTER)
  38.         step5z.SetFont(wx.Font(9, wx.SWISS, wx.NORMAL, wx.FONTWEIGHT_BOLD, False, u'Tahoma'))
  39.         step5z.SetForegroundColour("black")
  40.         step5z.SetCursor(wx.StockCursor(wx.CURSOR_HAND))
  41.         step5z.Wrap(230)
  42.         step5z.Bind(wx.EVT_LEFT_DOWN, lambda e, s=self: s.loadLink())
  43.         step5z.SetPosition( (  (250-step5z.GetSize()[0])/2.0, (65-step5z.GetSize()[1])/2.0   ))
  44.  
  45.  
  46.         mini.Show(True)
  47.         mini5.Show(True)
  48.         currX = wx.DisplaySize()[0]-250
  49.         currY = wx.DisplaySize()[1]
  50.         currX2 = wx.DisplaySize()[0]-250
  51.         currY2 = wx.DisplaySize()[1]+15
  52.         for count in range(110):
  53.             step5a.Update()
  54.             step5z.Update()
  55.             stepZZZ.Update()
  56.             time.sleep(1/110.0)
  57.             mini.Move( (currX, currY-(count+1)) )
  58.             mini5.Move( (currX2, currY2-(count+1)) )
  59.  
  60.  
  61.         mini.Show ( True )
  62.         mini5.Show ( True )
  63.    def closeOut(self,mini2):
  64.       mini2.Destroy()
  65.    def loadLink(self):
  66.       webbrowser.open("http://www.google.com/")
  67.  
  68.  
  69.  
  70. application = wx.PySimpleApp()
  71. timelater=time.mktime((2008,12,28,9,2,30,362,5,-1))
  72. count=0
  73. donebefore="no"
  74. doit="no"
  75. while(True):
  76.     count=count+1
  77.     timenow=time.mktime(time.gmtime())
  78.     if(timenow > timelater and donebefore=="no"):
  79.        doit="yes"
  80.        donebefore="yes"
  81.     else:
  82.        doit="no"
  83.  
  84.     if(doit=="yes"):
  85.         Window()
  86.     time.sleep(.5)
  87.     application.MainLoop()   
  88.  
  89.  
Dec 28 '08 #1
Share this question for a faster answer!
Share on Google+

Post your reply

Sign in to post your reply or Sign up for a free account.