QLineEdit本身就带有自动补全的功能,因此实现起来还是比较方便的,
以补全邮箱为例进行说明(根据输入数据自动补全邮箱后缀):
//当LineEdit内容变化,自动更新要匹配的数据列表
void MainWindow::on_lineEdit_textChanged(const QString &arg1)
{
QStringList complete_list;
QCompleter* complete_lineEdit;
complete_list<<arg1+"@163.com"<<arg1+"@126.com";
complete_lineEdit=new QCompleter(complete_list);
ui->lineEdit->setCompleter(complete_lineEdit);
}
最终效果如图: