Wxpython闪烁LED指示灯

时间:2018-03-27 09:26:13

标签: python wxpython

我正在构建一个在BLE上工作的应用程序,我想制作一个闪烁的LED(蓝色),表明已建立连接。 如何制作一系列闪烁LED指示灯?

任何例子,参考将不胜感激。

2 个答案:

答案 0 :(得分:0)

我假设您已经设法使用wxPython显示位图图像。你需要的是两张图片。一个用于未点亮的LED,另一个用于点亮的LED。

然后,使用wx.Timer超时闪烁间隔,比如说500ms。当计时器过去时,您可以交换图像。

您可能还想查看wx.lib.throbber

答案 1 :(得分:0)

你可以使用一些简单的StaticBox来完成这项工作

import wx
import random
blues=['#0000ff','#4682b4','#00008b','#00bfff','#0d4f60']
class MainFrame(wx.Frame):

    def __init__(self):
        wx.Frame.__init__(self, None, title='Led')
        panel = wx.Panel(self)
        self.led1 =  wx.StaticBox(panel, wx.ID_ANY, "", size=(20,20), pos=(10,10))
        self.led2 =  wx.StaticBox(panel, wx.ID_ANY, "", size=(20,20), pos=(31,10))
        self.led3 =  wx.StaticBox(panel, wx.ID_ANY, "", size=(20,20), pos=(52,10))
        self.led4 =  wx.StaticBox(panel, wx.ID_ANY, "", size=(20,20), pos=(73,10))
        self.led5 =  wx.StaticBox(panel, wx.ID_ANY, "", size=(20,20), pos=(94,10))
        self.led1.SetBackgroundColour(blues[0])
        self.led2.SetBackgroundColour(blues[1])
        self.led3.SetBackgroundColour(blues[2])
        self.led4.SetBackgroundColour(blues[3])
        self.led5.SetBackgroundColour(blues[4])
        self.counter = -5
        self.timer = wx.Timer(self)
        self.timer.Start(1000)
        self.Bind(wx.EVT_TIMER, self.OnTimer)
        self.Show()

    def OnTimer(self, evt):
        self.led1.SetBackgroundColour(random.choice(blues))
        self.led2.SetBackgroundColour(random.choice(blues))
        self.led3.SetBackgroundColour(random.choice(blues))
        self.led4.SetBackgroundColour(random.choice(blues))
        self.led5.SetBackgroundColour(random.choice(blues))

if __name__ == '__main__':
    app = wx.App()
    frame = MainFrame()
    app.MainLoop()

enter image description here