【问题标题】:How can I tell if the drop-down list of a `ComboBox` is open?如何判断“组合框”的下拉列表是否打开?
【发布时间】:2012-11-27 16:31:57
【问题描述】:

在wxPython中,如何判断ComboBox的下拉列表的状态,即是打开还是关闭?

我正在尝试实现一个ComboBox,它允许用户通过打开下拉列表、选择一个项目并按删除来从列表中删除一个值(当我说选择时编辑:这里我的意思是只突出显示一个项目,而不是单击它,因此下拉列表保持打开状态)。
我可以绑定删除键,并且我知道如何删除一个项目,唯一的问题是如果下拉列表关闭,删除键有不同的功能(它在文本字段中的常用功能),我想保留.

【问题讨论】:

    标签: python user-interface combobox wxpython


    【解决方案1】:

    使用 EVT_COMBOBOX。当用户从列表中选择某些内容时触发。我会将选择存储在实例变量中(如 self.currentSelection)。您可能还想存储以前的选择。然后,当用户按下“删除”时,您可以删除新选择或显示提示询问他们是否真的要删除该项目。

    更新:正如 cmets 中所述,我认为 ComboCtrl 是一个不错的选择。您可以在以下位置找到其用法示例:

    【讨论】:

    • EVT_COMBOBOX 仅在下拉列表关闭时触发,或者在关闭后立即触发,这意味着用户无法在通常的文本字段编辑中使用删除键。我希望能够在下拉列表打开时选择一个项目,并在它突出显示但尚未最终选择时按删除。
    • 您不能在组合框中选择某些内容并在组合框打开时按删除。也许您应该使用 ListBox 或尝试使用 ComboCtrl。
    • 我不想使用ListBox,因为我不希望将整个列表显示给用户,除非他选择查看。 ComboCtrl 看起来很有趣,因为它具有 IsPopupShown 方法,看起来正是我所需要的。但是,使用ComboCtrl 很复杂——你将如何用它创建最简单的组合框?
    猜你喜欢
    • 2014-05-01
    • 1970-01-01
    • 2019-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多