編集不可能なQComboBoxでは、いくつかのキーをすばやく押すと、表示されたテキストで検索が実行され、入力した接頭辞を持つ最初の項目が選択されます。たとえば、「アラバマ」、「アラスカ」、「カリフォルニア」、「コロラド」、「オハイオ」、「ルイジアナ」のコンボボックスに6つの項目があり、Cを押すと「カリフォルニア」が選択されます。しばらく待ってOを押すと、「Ohio」が選択されます。ただし、「CO」をすばやく入力すると、「Colorado」が選択されます。QComboBoxで検索をカスタマイズできますか?
この動作はQtの機能ですか?明らかに、これはGUIフレームワークの下にあるにもかかわらず、普遍的に機能します。これを処理するのがQtなら、それをカスタマイズできますか?私がやりたいことは、基本的にComboBoxに表示されていないデータに基づいて検索を実行することです。たとえば、ComboBoxでログインをリストするユーザーを選択するには、ユーザーの姓を入力して選択するだけで十分です。テキストの途中で一致するものを検索するだけで十分です(たとえば、「nia」と入力して「California」を選択するなど)。まず
、QCompleterは助けるように見えたが、これはウィジェットがこれを達成するために使用されるべきQComboBox、では不可能である場合は、それだけ...編集可能なQComboBoxに
を有用であろうように見えますか?
ご注意いただきありがとうございます。
これは簡単に実装できます。私が以前想像していた問題は、KeyEventが最後に押されたキーだけを送信すると思ったので、新しい検索を開始するか最後のものを続けるかを決定するためにイベントが最後に処理された時間を保つ必要がありました。あなたの答えから、私はキーストロークの間隔が十分に短い場合、イベントが完全なタイプ付きテキストを持つことを理解しています。これは正しいですか? – Gabriel
イベントのタイムスタンプを保持して、文字列を徐々に作成する必要があります。しかしこれは実装が難しいことではありません。 – pnezis
いいえ、そうではありません。私はちょうど既に存在していれば、車輪にreinventigを避けようとしていましたが、あなたが提案したように私はやります。ありがとう:) – Gabriel