由于wx.Frame.SetTitle导致的奇怪行为

时间:2010-02-25 11:31:14

标签: macos wxpython

在我移植到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')

2 个答案:

答案 0 :(得分:0)

唉,我不确定具体问题。但是,当你有一个演示问题但是难倒的样本时,我总是通过电子邮件发送wxpython-users邮件列表并附上样本来获得好运。如果您可以采取措施来解决问题,或者如果没有,您应该在跟踪器中提交错误,那么您应该很快得到响应。

我已经解决了很多问题,当我必须提交错误时,通常会很快解决它们。希望这有帮助!

答案 1 :(得分:0)