Russian Qt Forum

Qt => Общие вопросы => Тема начата: EhTemka от Август 21, 2007, 20:57



Название: match для поиска в QTreeView?
Отправлено: EhTemka от Август 21, 2007, 20:57

Привет всем!

qt 4.1.4
   
   Что-то ни как не могу разобраться. Мне нужен поиск в дереве(причем по всем чилдренам и парентам)

я пишу такой код
Код:
QModelIndexList list = match(index(0,0), Qt::UserRole, myVariant, 1, Qt::MatchFlags(Qt::MatchRecursive));
                if (!list.isEmpty()) {
                    .......
                }   

и ентот матч возващает мне только совпадение из верхнего уровня, хотя я и указал ему MatchRecursive. Как будто он далше и не ищет. А совпадения и в детях есть - это точно. Так что же, получается не работает рекурсивный поиск? Мож я что не так пишу?

Объясните, если кто знает, пож


Название: Re: match для поиска в QTreeView?
Отправлено: bigirbis от Август 22, 2007, 08:38
Цитировать
The search starts from the start index, and continues until the number of matching data items equals hits, the search reaches the last row, or the search reaches start again, depending on whether MatchWrap is specified in flags.
Приблизительный перевод
Цитировать
Поиск начинается от начального индекса и продолжается, пока количество совпадений не достигнет hits...
А у тебя этот hits равен 1.


Название: Re: match для поиска в QTreeView?
Отправлено: EhTemka от Август 23, 2007, 16:37
 Так в том то и дело, что он не находит не одного...

Я этот мач запускаю для разных значений. И должно совпасть только одно, которое находится либо в паренте, либо в чилдрене. И значение, которое находятся в паренте, совпадающее с заданным  - находится, а то которое в детёныше - нет.