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;
};