Илюха Вебер
Мамыр 11, 2019, 4:07 Т.Ж.

Как сделать поиск слов по буквам в lineEdit + textBrowser QT

текст, Поиск, фильтр, слов, qt, Qt, QT, c++, C++, Qt Creator

Здравствуйте
Я новичок в программировании и решил написать программку под экономку с выводами цены и названия товаров но столкнулся с такой проблемой у меня есть два объекта
Объект № (1) textBrowser в нем выводится ряд слов и цифр из БД sqlite
Объект № (2) lineEdit в этом объекте я хочу сделать поиск этих цифр и букв
Тоесть выводится текст из БД в textBrowser затем я ввожу в lineEdit первую букву или цифру из списка в textBrowser и менее показывает список этих слов или цифр
Пример как я хочу сделать на скриншоте

Пример как я хочу сделать

Пример как я хочу сделать

3

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

1
Ruslan Polupan
  • Мамыр 11, 2019, 2:50 Т.Қ.
  • Жауап шешім ретінде белгіленді.

Я так понимаю список у вас на основании модели.
Если так то можно использовать QSortFilterProxyModel
Я фильтровал записи так

  1. QSortFilterProxyModel *proxyModel = new QSortFilterProxyModel();
  2. proxyModel->setSourceModel(modelArticles);
  3.  
  4. void ArticlePage::on_lineEditFind_textChanged()
  5. {
  6. int columFind; //Колонка модели по которой будем искать
  7. ui->tableView->setModel(proxyModel);
  8. QRegExp::PatternSyntax syntax = QRegExp::PatternSyntax(QRegExp::FixedString);
  9. QRegExp regExp(ui->lineEditFind->text(),Qt::CaseInsensitive,syntax);
  10.  
  11. //Тут я выбираю по какому столбцу модели фильторовать
  12. if(ui->radioButtonName->isChecked()) columFind = 1;
  13. if(ui->radioButtonArticles->isChecked()) columFind =0;
  14. if(ui->radioButtonPrice->isChecked()) columFind = 3;
  15.  
  16. //Ну и сама фильтрация
  17. proxyModel->setFilterKeyColumn(columFind);
  18. proxyModel->setFilterRegExp(regExp);
  19. }

    Пікірлер

    Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
    Кіріңіз немесе Тіркеліңіз