1

QCompleterの入力された単語を含むすべてのアイテムをポップアップに表示するカスタム クラスを作成しましたQLineEdit

現在、すべてのアイテムは次のようにアルファベット順に並べられています。

ここに画像の説明を入力

「dab」と入力してから他の項目をアルファベット順に入力すると、ポップアップに最初の提案として「dab」が表示されるようにします。

このポップアップ順序が必要です:

  • たたく
  • 修正可能
  • 決定可能な
  • 分割可能
  • ガイド可能
  • 消耗品
  • ...

どうすればこれを達成できますか?

QCompleterこれは私が使用しているカスタムクラスです:

コード

class MyCompleter : public QCompleter
{
    Q_OBJECT

public:
    inline MyCompleter(const QStringList& words, QObject * parent) :
            QCompleter(parent), m_list(words), m_model()
    {
        setModel(&m_model);
    }

    // Filter
    inline void update(QString word)
    {
        // Include all items that contain "word".

        QStringList filtered = m_list.filter(word, caseSensitivity());
        m_model.setStringList(filtered);
        m_word = word;
        complete();
    }

    inline QString word()
    {
        return m_word;
    }

private:
    QStringList m_list;
    QStringListModel m_model;
    QString m_word;
};
4

1 に答える 1