crossplatform.ru

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

 
Тема закрытаНачать новую тему
> [РЕШЕНО] QTreeWidget::findItems(), Возможен ли поиск итемов по тексту во второй колонке?
molchanoviv
  опции профиля:
сообщение 30.10.2008, 23:27
Сообщение #1


Старейший участник
****

Группа: Сомодератор
Сообщений: 597
Регистрация: 18.7.2008
Из: Саратов
Пользователь №: 238

Спасибо сказали: 41 раз(а)




Репутация:   5  


Решил в виджете классов реализовать поиск, но столкнулся с небольшои проблеммой.
Набросал небольшой код для примера.
#include  <QtGui>

int main(int argc, char * argv[])
{
     QApplication app(argc, argv);
     QTreeWidget *widget = new QTreeWidget;
     QTreeWidgetItem *fitem = new QTreeWidgetItem(widget);
     fitem->setText(0,"first0");
     fitem->setText(1,"first1");
     QTreeWidgetItem *sitem = new QTreeWidgetItem(widget);
     sitem->setText(0,"second0");
     sitem->setText(1,"second1");
     QTreeWidgetItem *titem = new QTreeWidgetItem(widget);
     titem->setText(0,"third0");
     titem->setText(1,"third1");
     QList list;
     list<<widget->findItems("third0",Qt::MatchContains,0);
     if(!list.isEmpty()) qDebug()<<list.first()->text(0);
     else qDebug()<<"list Is Empty";
     widget->show();
     return app.exec();
}

Данный код - рабочий, но если я указваю list<<widget->findItems("third1",Qt::MatchContains,1); 
то список list оказывается пустым.
Посмотрел в ассистенте, там последний аргумент int column = 0
Собственно вопрос: можно ли искать итемы по тексту во второй колонке?

Сообщение отредактировал Litkevich Yuriy - 14.2.2009, 21:26
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 31.10.2008, 10:28
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9632
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 769 раз(а)




Репутация:   94  


molchanoviv, есть опечатка:
объявление должно быть такое - QList<QTreeWidgetItem*> list;
я скомпилил в Qt4.3.4, второго столбца нет в дереве.

добавил такую строчку:
widget->setColumnCount(2);
и все заработало

и когда меняешь номер столбца в
list<<widget->findItems("third0",Qt::MatchContains,0);

не забывай и тут поменять:
if(!list.isEmpty()) qDebug()<<list.first()->text(0);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
molchanoviv
  опции профиля:
сообщение 31.10.2008, 10:34
Сообщение #3


Старейший участник
****

Группа: Сомодератор
Сообщений: 597
Регистрация: 18.7.2008
Из: Саратов
Пользователь №: 238

Спасибо сказали: 41 раз(а)




Репутация:   5  


Спасибо.

Цитата
и когда меняешь номер столбца в
list<<widget->findItems("third0",Qt::MatchContains,0);

не забывай и тут поменять:
if(!list.isEmpty()) qDebug()<<list.first()->text(0);

Ну это само собой.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Тема закрытаНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 18.12.2017, 21:33