2

Qt 4.5 (PyQt 4.6.1)

我正在寻找一个类似于 a 的小部件,QComboBox它会自动将其条目过滤为以文本字段中的输入开头的条目。组合框中大约有 300 个项目。

我尝试了两种方法:

QLineEditQCompleter

优点

  • 过滤项目有效。

缺点

  • 如果文本字段为空,则不显示弹出窗口。
  • 不进行内联完成。
  • 允许插入不在列表中的项目。

可编辑QComboBox,插入设置为no

优点

  • 不错的弹出窗口
  • 在文本字段中完成内联。

缺点

  • 无过滤
  • 只能在文本字段弹出窗口中输入。单击弹出窗口不会选择弹出窗口中最匹配的项目。

我需要的

  • 用于选择项目的弹出窗口。
  • 缓慢的小费者应该能够开始小费一个项目的名称,并且弹出窗口会切换到最匹配的那个。
  • 最好我应该过滤这些项目,以便只显示部分匹配的项目。
4

1 回答 1

1

关于您第一次尝试使用 QLineEdit,您可以将其设置completionMode为内联。

对于您的第二次尝试,您可以向您的 QCombBox 添加一个 QCompleter 对象,以便根据需要过滤您的项目。QComboBox 的 QCompleter 成员提供了一种使用 QCompleter 的简单方法。

无论如何,如果您对这种方法不满意,您可以QCompleter自己管理一个对象。这允许您选择项目列表的显示方式(使用任何视图)并定义列表中的项目顺序。请参阅基本的 QCompleter 详细信息

于 2009-10-23T14:55:18.907 回答