Re: wxNotebook and DeleteAllPages()
Robin Dunn <[email protected]>
| Newsgroups | gmane.comp.python.wxpython.devel |
|---|---|
| Message-ID | <[email protected]> |
PyMapper Developer wrote: > Hello all, > I'm updating older code that was running on python 2.7 and > wxpython 2.8.12 to now run on python 3.6 and wxPhoenix. I have run > into the following error messages: > > <class 'wx._core.PaintEvent'> returned a result with an error set > > wx._core.wxAssertionError: C++ assertion "(int)m_pages.Count() == > (int)::SendMessageW((((HWND)GetHWND())), (0x1300 + 4), 0, 0L)" failed > at ..\..\src\msw\notebook.cpp(343) in wxNotebook::GetPageCount(): > > This occurs when I have an active wxNotebook (with any number of > pages) where I try to create a new page, after having called the > DeleteAllPages() method. Did the behavior of wxNotebook change > somewhere between 2.8.12 and 4.0, or is this a bug in the wxNotebook? > It's hard to say for sure but it's possible that there are some internal values (in wx or the native libs) that are in an inconsistent state immediately after a DeleteAllPages and the notebook isn't ready for new pages again until it has cleaned those up. If that's the case then it may help to not add any new pages until after the pending events have been processed. Using wx.CallAfter can help you with that. The fact that the error is detected while the in the wx.PainEvent code is a red flag for me too... It is possible that the context that you are calling DeleteAllPages in that is the trouble. Do you call it from the EVT_PAINT handler? From another thread? -- Robin Dunn Software Craftsman http://wxPython.org -- You received this message because you are subscribed to the Google Groups "wxPython-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.