Код: Выделить всё
void student::findText(const QString & text)
{
QString newText=text;
if (weShouldIgnoreSpaces())
newText.replace(QString(" "),QString("%"));
modelQuestion->setQuery("SELECT * FROM Question WHERE QuestionText LIKE '%"+text+"%' ORDER BY idQuestion");
if (modelQuestion->lastError().isValid())
qDebug() << modelQuestion->lastError();
modelQuestion->setHeaderData(0, Qt::Horizontal, tr("Question ID"));
modelQuestion->removeColumns(1,2);
modelQuestion->setHeaderData(1, Qt::Horizontal, tr("Question Text"));
modelQuestion->removeColumns(2,2);
<...>
}(Часть кода вырезана за ненадобностью).
Всё вроде-бы работает, но если ввести "OSI HUBa", а потом удалить последнюю букву - получается забавная гадость:
Если ввести всё правильно выдаётся:
Аналогичного результата можно достичь добавив:
Код: Выделить всё
delete modelQuestion;
modelQuestion = new QSqlQueryModel(0);
questionOutput->setModel(modelQuestion);Где-нибудь в начале функции findText.
У меня смутное ощущение, что я где-то сильно накосячил, но не понимаю где.