2

Qt 4.5(PyQt 4.6.1)

QComboBoxテキストフィールドの入力で始まるエントリにエントリを自動的にフィルタリングする、に似たウィジェットを探しています。コンボボックスには約300個のアイテムがあります。

私は2つのアプローチを試しました:

QLineEditQCompleter

利点

  • アイテムのフィルタリングは機能します。

短所

  • テキストフィールドが空の場合、ポップアップは表示されません。
  • インライン補完は行いません。
  • リストにないアイテムを挿入できます。

QComboBox挿入をnoに設定して編集可能

利点

  • 素敵なポップアップ
  • テキストフィールドにインラインで入力します。

短所

  • フィルタリングなし
  • 入力は、テキストフィールドまたはポップアップのいずれかでのみ可能です。ポップアップをクリックしても、ポップアップ内で最も一致するアイテムは選択されません。

必要なもの

  • アイテムを選択するためのポップアップ。
  • 遅いティッパーはアイテムの名前をチップし始めることができるはずであり、ポップアップは最も一致するものに切り替わります。
  • できれば、部分的に一致するアイテムのみが表示されるようにアイテムをフィルタリングする必要があります。
4

1 に答える 1

1

最初に QLineEdit を試す場合は、completionModeインラインで実行するように設定できます。

2 回目の試行では、QCompleter オブジェクトを QCombBox に追加して、必要に応じてアイテムをフィルタリングできます。QComboBox の QCompleter メンバーは、QCompleter を簡単に使用する方法を提供します。

とにかく、この方法に満足できない場合は、QCompleter自分でオブジェクトを管理できます。これにより、項目リストの表示方法を (任意のビューを使用して) 選択したり、リスト内の項目の順序を定義したりできます。基本的なQCompleter の詳細を参照してください。

于 2009-10-23T14:55:18.907 に答える