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

发布于 2024-08-08 05:54:09 字数 676 浏览 8 评论 0原文

Qt 4.5 (PyQt 4.6.1)

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

我尝试了两种方法:

QLineEditQCompleter

优点

  • 过滤项目有效。

缺点

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

可编辑的QComboBox,插入设置为no

优点

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

缺点

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

我需要什么

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

Qt 4.5 (PyQt 4.6.1)

I'm looking for a widget similar to a QComboBox that automatically filters its entries to the ones starting with the input in the text field. There are around 300 items in the combo box.

I've tried two approaches:

QLineEdit with QCompleter

Advantages

  • Filtering the items works.

Disadvantages

  • Doesn't show a popup if the text field is empty.
  • Doesn't do inline completion.
  • Allows to insert items not in the list.

Editable QComboBox with insertion set to no

Advantages

  • Nice popup
  • Completes inline in the text field.

Disadvantages

  • No filtering
  • Input is only possible in either the text field or the popup. Clicking on the popup doesn't select the best-matching item in the popup.

What I need

  • A popup to select the items.
  • Slow tippers should be able to start tipping the name of an item and the popup switches to the best matching one.
  • Preferably I should filter the items so that only partially-matching items are shown.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

月依秋水 2024-08-15 05:54:09

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

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

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

Concerning you first try with QLineEdit, you can set the completionMode to do it inline.

For your second try, you can add a QCompleter object to you QCombBox in order to filter your items as you want.The QCompleter member of the QComboBox is to offer an easy way to use QCompleter.

Anyway, if you are not satisfied with this method, you can manage a QCompleter object by yourself. This allows you to choose how item list is display (using any views) and to define items order in the list. See basic QCompleter details.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文