В приложении wxPython, которое я портирую на Mac OSX, я устанавливаю заголовок фрейма приложения каждые 500 мс в событии обновления пользовательского интерфейса, и поэтому все панели и окна обновляются. Это кажется мне странным и почти останавливает мое приложение, в котором есть много пользовательских элементов управления и экранов.
Я хотел знать, что может быть причиной этого, это нормально для MAC?
Вот скрипт с самоограничением, который копирует сценарий с использованием таймеров. Он продолжает печатать «на краске» каждые 500 мс, потому что в таймере я устанавливаю заголовок каждые 500 мс.
import wx
app = wx.PySimpleApp()
frame = wx.Frame(None, title="BasePainter Test")
painter = wx.Panel(frame)
def onPaint(event):
dc = wx.PaintDC(painter)
print "onPaint"
painter.Bind(wx.EVT_PAINT, onPaint)
def loop():
frame.SetTitle(frame.GetTitle())
wx.CallLater(500, loop)
loop()
frame.Show(True)
app.SetTopWindow(frame)
app.MainLoop()
Детали моей системы:
>>> sys.version
'2.5 (r25:51918, Sep 19 2006, 08:49:13) \n[GCC 4.0.1 (Apple Computer, Inc. build 5341)]'
>>> wx.VERSION
(2, 8, 10, 1, '')
>>> os.uname()
('Darwin', 'agyeys-mac-mini.local', '9.8.0', 'Darwin Kernel Version 9.8.0: Wed Jul 15 16:55:01 PDT 2009; root:xnu-1228.15.4~1/RELEASE_I386', 'i386')