我可以让QCompleter完整内联并显示弹出窗口

时间:2009-10-23 12:56:34

标签: qt pyqt qcompleter

Qt 4.5(PyQt 4.6.1)

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

我尝试了两种方法:

QLineEdit QCompleter

优点

  • 过滤项目有效。

缺点

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

可插入设置为

的可编辑QComboBox

优点

  • 好的弹出
  • 在文本字段中完成内联。

缺点

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

我需要什么

  • 用于选择项目的弹出窗口。
  • 慢速自卸车应该能够开始倾斜项目的名称,弹出窗口切换到最匹配的一个。
  • 我最好过滤这些项目,以便只显示部分匹配的项目。

1 个答案:

答案 0 :(得分:1)

关于您首先尝试使用QLineEdit,您可以设置completionMode来内联。

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

无论如何,如果您对此方法不满意,可以自行管理QCompleter对象。这允许您选择项目列表的显示方式(使用任何视图)以及在列表中定义项目顺序。请参阅基本QCompleter details