我正在使用wxPython处理一个表单,我希望listcrl的值列表根据另一个listcrl的选择进行更改。为此,我使用链接到控制对象的EVT_LIST_ITEM_SELECTED
和EVT_LIST_ITEM_DESELECTED
事件的方法来调用Publisher.sendMessage
。要更改的控件的方法是该发布服务器的订阅服务器。这是可行的:当单击第一个listcrl时,第二个listcrl被刷新。在
问题是数据必须从数据库中刷新,每次选择和取消选择都会发送一条消息。这意味着,即使我只是单击一个项目,数据库也会被查询两次(一次是取消选择,然后是再次进行选择)。如果我按住shift键并单击多选5个项目,则会拨打5个电话。有没有办法让listctrl响应集合,而不是单个选择?在
最好的解决方案似乎是使用带有标志的
wx.CallAfter
来执行一次后续过程:可以推入自定义事件处理程序
你可以试试右键单击EVT_LIST_ITEM_。那应该行得通。否则,您需要在每次触发selection事件时使用一个标志并检查said标志,以确定它是否需要查询数据库。还有一个ultimatelistcrl,一个纯python小部件,您也可以通过黑客攻击来实现这一点。在
相关问题 更多 >
编程相关推荐