Название: Проблема с QSortFilterProxyModel и lineEdit. Отправлено: Dr.Vlad от Апрель 17, 2010, 13:29 Здравствуйте все!
У меня к Вам такой вопрос. Есть поле на Child форме, в которое вводятся буквенные и числовые данные. Поле lineEdit. Я ввёл проверку на присутствие таких же данных в модели, чтоб дубляжа не было: QSortFilterProxyModel pro; pro.setSourceModel(parentForm->mainlow()); pro.setFilterKeyColumn(0); pro.setFilterRegExp("^"+m_ui->lineEdit_4->text().trimmed().toLocal8Bit()+"$"); if(m_ui->lineEdit_4->isEnabled() && pro.rowCount() != 0) { QMessageBox::warning(this, tr("ОШИБКА!"), QObject::tr("Введён дубляж, повторите процедуру!")); m_ui->lineEdit_4->clear(); m_ui->lineEdit_4->setFocus(); add = false; break; } В общем, чё он делает... При введении дубляжа в lineEdit матерится сама база по QDebug(), хотя должен материться этот кусок проги. Самое главное, что со spinBox отрабатывает безпроблемно. Так и непонятно, что такое с этим lineEdit. Название: Re: Проблема с QSortFilterProxyModel и lineEdit. Отправлено: BaltikS от Апрель 17, 2010, 15:11 Что возвращает spinbox и что возвращает lineedit? вообще не достаточно представленного вами кода, а именно модели....и что выводится в qDebug?
Название: Re: Проблема с QSortFilterProxyModel и lineEdit. Отправлено: Kolobok от Апрель 17, 2010, 18:05 Использовать прокси для поиска дубликатов, это как гвозди микроскопом забивать. Используй этот метод
Код: QModelIndexList QAbstractItemModel::match ( const QModelIndex & start, int role, const QVariant & value, int hits = 1, Qt::MatchFlags flags = Qt::MatchFlags( Qt::MatchStartsWith | Qt::MatchWrap ) ) или, если у тебя база данных, опрашивай таблицу напрямую. Или сделай это поле UNIQUE. Название: Re: Проблема с QSortFilterProxyModel и lineEdit. Отправлено: Dr.Vlad от Апрель 17, 2010, 18:47 Что возвращает spinbox и что возвращает lineedit? вообще не достаточно представленного вами кода, а именно модели....и что выводится в qDebug? Модель как модель QSqlQueryModel. Построена при помощи запроса, просматривается QTableView.spinBox возвращает "int", lineEdit возвращает "string". В QDebug выводится "Error matches unique constraint pkey '....'". |