Странное поведение из-за wx.Frame.SetTitle - PullRequest
0 голосов
/ 25 февраля 2010

В приложении 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')

Ответы [ 2 ]

0 голосов
/ 08 апреля 2010

Это ошибка в wxPython (OSX-Carbon).

Подана ошибка http://trac.wxwidgets.org/ticket/11920

Обсуждение: http://groups.google.com/group/wxpython-users/browse_thread/thread/2430e0ef7ff1fb8/8f384968a42136d7

0 голосов
/ 05 марта 2010

Увы, я не уверен в конкретной проблеме. Однако, когда у вас есть пример, который демонстрирует проблему, но озадачен, мне всегда очень повезло, отправив по электронной почте список рассылки wxpython-users и приложив образец. Вы должны получить ответ довольно быстро, если есть что-то, что вы можете сделать, чтобы исправить это, или, если нет, что вы должны сообщить об ошибке в трекере.

У меня было много проблем, решенных таким образом, и когда мне приходилось регистрировать ошибки, они обычно решались довольно быстро. Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...