❝QLineEdit和QCompleter组成水果输入候选词示例。 "peach" << "grape" << "banana" << "lemon" << "cherry" << "orange" << "pineapple"; /* QCompleter 类提供基于项目模型的补全 */ QCompleter *completer = new QCompleter(fruits); /* 忽略大小写 */ completer->setCaseSensitivity Qt君"); /* 设置补全器 */ lineEdit->setCompleter(completer); lineEdit->show(); 还可以使用QFileSystemModel作为候选内容 QCompleter *completer = new QCompleter(); completer->setModel(new QFileSystemModel(completer)); lineEdit->setCompleter
【代码如下】 #include "cwidget.h" #include <QLineEdit> #include <QDebug> #include <QCompleter> #include <QStringList strList.append("bcd"); strList.append("china"); strList.append("cde"); // 将列表应用于匹配规则 QCompleter * completer = new QCompleter(strList); // 设置匹配模式为包含匹配,就是当我们输入一个字符时 // 无论这个字符是否在首位置都显示匹配的字符串 strList.append("abc"); strList.append("bcd"); strList.append("china"); strList.append("cde"); // 将列表应用于匹配规则 QCompleter * completer = new QCompleter(strList); // 设置匹配模式为包含匹配,就是当我们输入一个字符时 // 无论这个字符是否在首位置都显示匹配的字符串 completer
因为Qt库本身就提供了一个类QCompleter来完成这个功能。而且使用起来也很简单,直接调用QLineEdit的setCompleter()即可完成。 我们在实现代码中添加如下代码: m_model = new QStandardItemModel(0, 1, this); m_completer = new QCompleter(m_model, this 因为我们已经将这个Model类设置成了QCompleter类的Model,因此当我们更新Model类的数据时,QCompleter的下拉列表的内容也会同步更新。 QCompleter和QLineEdit搭配使用。
echoMode="2"] { lineedit-password-character: 35; /*35,这是一个ASCII码值,在ASCII码中对应字符为‘#’*/ } 自动补全 通过不断修改QCompleter m_model = new QStandardItemModel(0, 1, this); m_completer = new QCompleter(m_model, this); ui.lineEdit
ifndef WIDGET_H #define WIDGET_H #pragma execution_character_set("utf-8") #include <QWidget> #include <QCompleter channel=1&subtype=0" ; //列表 QCompleter *year = new QCompleter(listyear);//构建自动补全器
QCompleter* completer() const void setCompleter(QCompleter * c) QCompleter后面详细讲解。