我正在学习wxpython并有一个问题。
当我在框架内创建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 :(得分:0)
我不知道为什么会发生这种情况,但这看起来像是wxWidgets中的一个错误。在实践中,这意味着你不应该依赖这种行为,因为它可能(实际上我很确定它确实)在其他平台下表现不同,并且在将来的wxWidgets版本中也可能会改变。