2014-06-27 3 views
1

Я изучаю wxpython и задаюсь вопросом.wxpython: EVT_TREE_SEL_CHANGED событие в treectrl в записной книжке при создании

Когда я создаю TreeCtrl внутри рамки и вызвать framework.show(), первый элемент в treectrl автоматически выбирается (т.е. EVT_TREE_SEL_CHANGED событие вызывается). Однако, когда я создаю treectrl на панели, добавьте панель в блокнот и добавьте ноутбук в фреймворк, событие EVT_TREE_SEL_CHANGED не будет запущено, когда вызывается framework.show(). Вместо этого, когда я выбираю элемент в treecontrol позже после первоначального рендеринга, запускаются два EVT_TREE_SEL_CHANGED (один для первого элемента, который должен быть запущен во время первоначального рендеринга, а другой для выбранного элемента).

panel.SetFocus() в нижней части framework.__init__() исправить эту проблему - то есть, огонь EVT_TREE_SEL_CHANGED, чтобы выбрать первый элемент во время первоначального рендеринга. Но, интересно, почему это происходит. Кто-нибудь знает, почему EVT_TREE_SEL_CHANGED заблокирован в первоначальном рендеринге, когда элемент управления дерева содержится в панели ноутбука?

ответ

0

Я не знаю, почему именно это происходит, но это похоже на ошибку в wxWidgets. На практике это означает, что вы не должны полагаться на это поведение, потому что оно может (и на самом деле я уверен, что это так) ведет себя по-другому в отношении других платформ, а также может измениться в будущих версиях wxWidgets.

Смежные вопросы