Название: qtableview поиск айтемов Отправлено: koldun90 от Март 19, 2015, 16:30 Здравствуйте делаю поиск файлов
мне нужно чтобы я вводил данные в lineedit они обрабатывались в слоте Код: void MainWindow::poisk(QString qw) проблема в том что я не знаю как мне выполнить поиск в qtableview который отображает qfilesystemmodel мне нужно как бы найти подтекст в тексте Код: ui->tableView->setCurrentIndex(sortmodel->mapFromSource(model1->index(putdlyaotobr+"/"+qw))); //если я ищу вот так то когда то подсветка работает только тогда,когда я вбиваю полное имя файла . а мне нужно сделать так чтобы чтобы я начал вводить текст он уже начал его искать Код вот пример (http://s04.radikal.ru/i177/1503/2f/370c1db4570a.png) (http://www.radikal.ru) так вопрос как мне сделать так чтобы я начал вводить допустим 2 а в tableview уже подсветилась папка начинающаяся с "2" Название: Re: qtableview поиск айтемов Отправлено: gil9red от Март 19, 2015, 17:18 Можно этим искать: http://qt-project.org/doc/qt-4.8-snapshot/qabstractitemmodel.html#match
Название: Re: qtableview поиск айтемов Отправлено: koldun90 от Март 19, 2015, 20:31 а можете подробнее написать какие параметры нужно передать в функцию...)
Название: Re: qtableview поиск айтемов Отправлено: gil9red от Март 19, 2015, 20:40 а можете подробнее написать какие параметры нужно передать в функцию...) Пожалуйста: Код
Название: Re: qtableview поиск айтемов Отправлено: koldun90 от Март 19, 2015, 22:18 а можете подробнее написать какие параметры нужно передать в функцию...) Пожалуйста: Код
я правильно понял Код: const QModelIndex & start что я сюда должен вставить если моя qfilesystemmodel обернута qsortfilterproxymodel индекс от прокси модели или индекс от qfilesystemmodel модели? int role-- что сюда должен? const QVariant & value--и сюда?? Название: Re: qtableview поиск айтемов Отправлено: gil9red от Март 19, 2015, 22:58 а можете подробнее написать какие параметры нужно передать в функцию...) Пожалуйста: Код
я правильно понял Код: const QModelIndex & start что я сюда должен вставить если моя qfilesystemmodel обернута qsortfilterproxymodel индекс от прокси модели или индекс от qfilesystemmodel модели? int role-- что сюда должен? const QVariant & value--и сюда?? неа, start -- индекс элемента с которого начинается поиск в рамках qfilesystemmodel это может быть и папка, и файл этот метод класс QAbstractItemModel и он есть у всех моделей включая qfilesystemmodel и qsortfilterproxymodel, так что, можете выбрать сами в какой будете поиск делать role это Qt::ItemDataRole (http://qt-project.org/doc/qt-4.8-snapshot/qt.html#ItemDataRole-enum), у вас role будет Qt::DisplayRole value -- то, что ищем в элементах модели, для role равной Qt::FontRole, это будет QFont, у вас это строка QString Почитайте доку, есть же и русской язычные версии 4.5 или 4.3, не помню точно Название: Re: qtableview поиск айтемов Отправлено: koldun90 от Март 19, 2015, 23:38 сделал как вы сказали в итоге выводит
int hits = 1 QString str; QModelIndexList gg=model1->match ( model1->index(putdlyaotobr),Qt::DisplayRole,str,hits , Qt::MatchStartsWith | Qt::MatchWrap) ; выводит 1 индекс почему то распечатываю индекс "/" корневая папка или нужно QString str--это как бы подстрока для поиска? Название: Re: qtableview поиск айтемов Отправлено: gil9red от Март 20, 2015, 00:12 сделал как вы сказали в итоге выводит int hits = 1 QString str; QModelIndexList gg=model1->match ( model1->index(putdlyaotobr),Qt::DisplayRole,str,hits , Qt::MatchStartsWith | Qt::MatchWrap) ; выводит 1 индекс почему то распечатываю индекс "/" корневая папка или нужно QString str--это как бы подстрока для поиска? str -- то, что вы ищете это может быть просто текст, а может быть и регулярка, это зависит от Qt::Match* флагов Название: Re: qtableview поиск айтемов Отправлено: koldun90 от Март 20, 2015, 05:41 сделал как вы сказали в итоге выводит int hits = 1 QString str; QModelIndexList gg=model1->match ( model1->index(putdlyaotobr),Qt::DisplayRole,str,hits , Qt::MatchStartsWith | Qt::MatchWrap) ; выводит 1 индекс почему то распечатываю индекс "/" корневая папка или нужно QString str--это как бы подстрока для поиска? str -- то, что вы ищете это может быть просто текст, а может быть и регулярка, это зависит от Qt::Match* флагов вопросы str должно быть как бы вид я ввожу я хочу найти папку начинающуюся на "a" мне нужно что подать в функцию строку вида "a" или "a*" и что мне тогда указать последним параметром какой QT matchflag использовать? Название: Re: qtableview поиск айтемов Отправлено: GreatSnake от Март 20, 2015, 11:25 2ТС
см. QCompleter Название: Re: qtableview поиск айтемов Отправлено: gil9red от Март 20, 2015, 12:54 сделал как вы сказали в итоге выводит int hits = 1 QString str; QModelIndexList gg=model1->match ( model1->index(putdlyaotobr),Qt::DisplayRole,str,hits , Qt::MatchStartsWith | Qt::MatchWrap) ; выводит 1 индекс почему то распечатываю индекс "/" корневая папка или нужно QString str--это как бы подстрока для поиска? str -- то, что вы ищете это может быть просто текст, а может быть и регулярка, это зависит от Qt::Match* флагов вопросы str должно быть как бы вид я ввожу я хочу найти папку начинающуюся на "a" мне нужно что подать в функцию строку вида "a" или "a*" и что мне тогда указать последним параметром какой QT matchflag использовать? Кажется это Wildcard называется.. |