Несколько вещей.
- Я не могу воспроизвести это на моем iMac, оно полностью заполнено. Python 2.5.4, wxPython 2.8.9.2
- Праздные события могут наступить в странные времена. Попробуйте добавить
print event
в ваш обработчик бездействия, чтобы точно определить, когда наступят эти события. Таймер был бы лучшим. Датчик движется очень быстро или мигает?
- Вы можете попробовать вызвать gauge.Update (), чтобы также выполнить полную перерисовку.
- Я всегда просто использую 100 в качестве предела калибровки, может быть, просто попробуйте.
Более простой способ, чем таймер, может быть:
import wx
class GaugeFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, "Gauge example",
size=(350, 150))
panel = wx.Panel(self, -1)
self.count = 0
self.gauge = wx.Gauge(panel, -1, 50, (20, 50), (250, 25))
self.update_gauge()
def update_gauge(self):
self.count = self.count + 1
if self.count >= 50:
self.count = 0
self.gauge.SetValue(self.count)
wx.CallLater(100, self.update_gauge)
app = wx.PySimpleApp()
GaugeFrame().Show()
app.MainLoop()