Pastebin link:http://pastebin.com/f40ae1bcf
问题:我制作了一个wx.Gauge,范围是50.然后是一个在程序空闲时更新Gauge值的函数。当仪表填充大约50%时,它会清空,并且暂时不显示任何内容。当它这样做时,该值实际上是50,我认为当值为50时,它应该是满的。
为什么这样做?我也尝试使用wx.Timer而不是绑定到wx.EVT_IDLE,但我没有运气。
答案 0 :(得分:1)
一些事情。
print event
添加到您的空闲处理程序,以确切了解这些事件何时到来。计时器是最好的。仪表移动得非常快或闪烁吗?比计时器更简单的方法是:
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()
答案 1 :(得分:0)
您确定发布的代码是给您提供问题的代码吗?这段代码看起来非常类似于wxPython的演示代码,并且在我的机器上运行没有问题。
如果您确实将仪表的值设置为50,那可能是您的问题。你必须确保不要超过wx.Gauge的范围。如果范围是50,则可以在其中设置的最高值为49。
答案 2 :(得分:0)
经过多次测试后,我发现必须覆盖2个单位的范围才能在完全充满时显示标尺。 在Windows Vista上似乎不会导致问题。它会在linux或mac上引起问题吗?