crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Требуется организовать поиск в QTreeWidget...
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
rich Дата 1.3.2008, 13:56
  спасибо
ViGOur Дата 1.3.2008, 13:53
  Поиск в массиве элементов всегда расчитан на перебор всех элементов массива, иначе как можно определить, что к чему? :)

Единственный вариант, чтобы ускорить поиск, можно отсортировать этот массив по условию Сhecked - Unchecked, но думаю, что в твоем случае это не особо ускорит поиск...
rich Дата 1.3.2008, 13:49
  точнее в листе их номера
rich Дата 1.3.2008, 13:44
  долго будет.можно как то просматривать только те item, которые у меня в QListe?List генерится при постровнии дерева и содержит номера тех item'ов которые юзер может вырать
ViGOur Дата 1.3.2008, 13:35
  Да, но только нулевого столбца.

Для того, чтобы пробежать по всем элементам всех столбцов нужно добавить дополнительный цикл.
treeWidget->findItems( itemText, Qt::MatchWildcard);
// равносильно
treeWidget->findItems( itemText, Qt::MatchWildcard,  0); // Где третий аргумент функции номер столбца.
rich Дата 1.3.2008, 13:30
  получается поиск по всем item дерева?
ViGOur Дата 1.3.2008, 13:17
  Так:
        QTreeWidgetItem *item;
        QList<QTreeWidgetItem *> found = treeWidget->findItems( itemText, Qt::MatchWildcard);

        foreach (item, found)
        {
                if( item->checkState( nColumn))
                {
                        // Добавляем в список...
                }
        }
rich Дата 1.3.2008, 12:19
  Требуется организовать поиск в QTreeWidget и элементы удовлетворяющие определенному условию добавить в список.
Собственно вопрос - как пробежаться в цикле по всем элементам дерева если условием является Qt::Unchecked или Qt::Checked?И ещё, в QList`e есть номера item`ов, которые можно Unchecked или Checked.
Bulb Дата 25.2.2008, 11:18
  Ок. Спасибо.
Такой поиск не подойдет. Т.к. использую свой класс в дереве и нужно искать по своим полям.
Но способ перебора нашел. Там же по ссылке, чуть выше.
Багира Дата 25.2.2008, 10:28
 
        QTreeWidgetItem *item;
        QList<QTreeWidgetItem *> found = treeWidget->findItems(
            itemText, Qt::MatchWildcard);

        foreach (item, found) {
            treeWidget->setItemSelected(item, true);
            // Show the item->text(0) for each item.
        }
Читай описание: Традиционные классы представления элементов / Поиск
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 27.4.2024, 12:27