Используйте QCompleter программно без виджета - PullRequest
1 голос
/ 20 апреля 2020

Я пытаюсь использовать QCompleter программно без виджета. Я ожидаю, что это покажет мне все каталоги в моем каталоге root /:

QCompleter *completer = new QCompleter();

QFileSystemModel *fsModel = new QFileSystemModel(completer);
fsModel->setRootPath(QString());

completer->setModel(fsModel);

completer->setCompletionPrefix(QString("/"));

for (int i = 0; completer->setCurrentRow(i); i++)
    qDebug() << completer->currentCompletion() << " is match number " << i;

currentCompletion() возвращает строку emtpy, и я увидел, что модельный индекс кажется недействительным.

Примечание : Если я запускаю тот же код и присоединяю завершитель, например, к QLineEditmyLineEdit->setCompleter(completer);), завершение работает, как и ожидалось.

...