在我移植到Mac OSX的wxPython应用程序中,我在更新UI事件中每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')
答案 0 :(得分:0)
我已经解决了很多问题,当我必须提交错误时,通常会很快解决它们。希望这有帮助!
答案 1 :(得分:0)
这是wxPython(OSX-Carbon)中的一个错误。
提交了一个错误http://trac.wxwidgets.org/ticket/11920
讨论: http://groups.google.com/group/wxpython-users/browse_thread/thread/2430e0ef7ff1fb8/8f384968a42136d7