2012-08-07 94 views
1

我想知道是否有人知道如何將閃爍文本編程到wxPython中? (我對wxPython相當陌生) 它每隔半秒左右就會在紅色和正常之間閃爍,我使用的是Python 2.7.3,而不是最新版本。wxPython中的閃爍文本

感謝

克里斯

回答

1

你會想看看如何在飛行中改變fonts。通常,它只是調用小部件的SetFont()方法。既然你想定期這樣做,那麼你幾乎肯定會想要使用wx.Timer。如果你願意,你可以閱讀我的tutorial關於這個主題。我可能會使用StaticText小部件。

更新:這是一個愚蠢的例子:

import random 
import time 
import wx 

######################################################################## 
class MyPanel(wx.Panel): 
    """""" 

    #---------------------------------------------------------------------- 
    def __init__(self, parent): 
     """Constructor""" 
     wx.Panel.__init__(self, parent) 

     self.font = wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.NORMAL) 
     self.flashingText = wx.StaticText(self, label="I flash a LOT!") 
     self.flashingText.SetFont(self.font) 

     self.timer = wx.Timer(self) 
     self.Bind(wx.EVT_TIMER, self.update, self.timer) 
     self.timer.Start(1000) 

    #---------------------------------------------------------------------- 
    def update(self, event): 
     """""" 
     now = int(time.time()) 
     mod = now % 2 
     print now 
     print mod 
     if mod: 
      self.flashingText.SetLabel("Current time: %i" % now) 
     else: 
      self.flashingText.SetLabel("Oops! It's mod zero time!") 
     colors = ["blue", "green", "red", "yellow"] 
     self.flashingText.SetForegroundColour(random.choice(colors)) 

######################################################################## 
class MyFrame(wx.Frame): 
    """""" 

    #---------------------------------------------------------------------- 
    def __init__(self): 
     """Constructor""" 
     wx.Frame.__init__(self, None, title="Flashing text!") 
     panel = MyPanel(self) 
     self.Show() 

#---------------------------------------------------------------------- 
if __name__ == "__main__": 
    app = wx.App(False) 
    frame = MyFrame() 
    app.MainLoop() 
+0

嗯,這是一個好主意,你會怎麼做,以便它自行啓動,並打印出沒有確切的日期和時間,但time.time()數字並用它來計數。我也在考慮使用if else語句,即,如果計時器的整數值除以2後的餘數爲0,則顯示此文本,否則顯示此文本,您有關於如何執行此操作的任何想法? (對不起,如果這聽起來像一個noob問題) – 2012-08-07 23:59:19

+0

哦,我幾乎忘了,我可以複製和粘貼我的代碼,據我所知,如果這將有助於事情 – 2012-08-08 00:01:08

+0

我添加了一個愚蠢的例子 – 2012-08-08 14:07:56