Russian Qt Forum
Ноябрь 24, 2024, 09:59 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблема с QSortFilterProxyModel и lineEdit.  (Прочитано 2744 раз)
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.
Записан
BaltikS
Гость
« Ответ #1 : Апрель 17, 2010, 15:11 »

Что возвращает spinbox и что возвращает lineedit? вообще не достаточно представленного вами кода, а именно модели....и что выводится в qDebug?
Записан
Kolobok
Гость
« Ответ #2 : Апрель 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.
Записан
Dr.Vlad
Гость
« Ответ #3 : Апрель 17, 2010, 18:47 »

Что возвращает spinbox и что возвращает lineedit? вообще не достаточно представленного вами кода, а именно модели....и что выводится в qDebug?
Модель как модель QSqlQueryModel. Построена при помощи запроса, просматривается QTableView.
spinBox возвращает "int", lineEdit возвращает "string". В QDebug выводится "Error matches unique constraint pkey '....'".
« Последнее редактирование: Апрель 17, 2010, 18:59 от Dr.Vlad » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.043 секунд. Запросов: 20.