我想用wxPython創建一個GUI定時器。單擊一個開始按鈕,計時器啓動並且一個標籤顯示計時器,計時秒數可以達到幾分鐘,也可以達到幾小時。停止按鈕停止定時器。我不知道如何讓計時器不斷顯示在標籤上。我嘗試了一段時間True循環,但似乎SetLabel()或Time()想要顯示一次,並且正在等待循環結束。wxPython StopWatch不斷顯示計數時間?
import wx
class Timer(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, title=title, size=(400, 350))
self.main()
self.Centre()
self.Show()
def main(self):
panel = wx.Panel(self)
sizer = wx.GridBagSizer(5, 0)
self.timer = wx.StopWatch()
self.label = wx.StaticText(panel)
sizer.Add(self.label, pos=(0, 0), flag=wx.ALIGN_CENTER)
button_start = wx.Button(panel, label='Start')
self.Bind(wx.EVT_BUTTON, self.OnStart, button_start)
sizer.Add(button_start, pos=(1, 0), flag=wx.ALIGN_CENTER)
button_stop = wx.Button(panel, label='Stop')
self.Bind(wx.EVT_BUTTON, self.OnStop, button_stop)
sizer.Add(button_stop, pos=(2, 0), flag=wx.ALIGN_CENTER)
sizer.AddGrowableRow(0)
sizer.AddGrowableRow(1)
sizer.AddGrowableRow(2)
sizer.AddGrowableCol(0)
panel.SetSizer(sizer)
def OnStart(self, event):
self.timer.Start()
while True:
self.label.SetLabel(str(self.timer.Time()))
def OnStop(self, event):
self.timer.Pause()
if __name__ == '__main__':
app = wx.App()
Timer(None, 'Timer')
app.MainLoop()
LEDNumberCtrl主要是我正在尋找,謝謝。我花了很長時間才弄清楚如何從零開始。剩下的唯一一件事就是弄清楚爲什麼小時從7開始(或24小時爲19)。我的LEDNumberCtrl更改(帶註釋的行):http://pastebin.com/R1FpFTsG – user1055898