我创建了一个自定义QCompleter
类,它在弹出窗口中显示所有项目,其中包含 a 的键入词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;
};