我在程序中有两个QLineEdit
,分别为lineEdit
和fileName_Edit
。 lineEdit
保存着用户输入的目录地址。然后,用户在fileName_Edit
中输入文件名。当用户正在输入文件名时,我希望向他显示建议。尝试使用以下方式实现QCompleter
:
(dirContents
是一个QStringList
,它保存着由用户在lineEdit
中指定的目录的内容)
void MainWindow::on_lineEdit_textChanged(const QString &arg1)
{
QCompleter *fileEditCompleter = new QCompleter(dirContents, this);
fileEditCompleter->setCaseSensitivity(Qt::CaseInsensitive);
fileEditCompleter->setCompletionMode(QCompleter::UnfilteredPopupCompletion);
ui->fileName_Edit->setCompleter(fileEditCompleter);
}
程序编译成功,但自动完成器没有出现。即使我尝试将textChanged
信号连接到函数,如下所示,它也不会出现。
QObject::connect(&MainWindow::ui->lineEdit, SIGNAL(&textChanged(QString)), this,SLOT(&MainWindow::on_lineEdit_editingFinished()));
编辑:添加上述行会出现错误,错误信息如下:
预期构造函数、析构函数或类型转换前应有 ( 标记
非常感谢您的帮助。
QLineEdit
之前设置自动补全器。例如,在MainWindow的构造函数中设置。在textChanged槽中设置是不正确的。 - Dmitry Sazonov