crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> работа со списками (QListView, QListWidget), непойму как...
FenixTES
  опции профиля:
сообщение 18.11.2009, 20:46
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 20
Регистрация: 14.11.2009
Пользователь №: 1230

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




Репутация:   0  


у меня есть задача:
1) забить что-то в список
2) найти чтото из него и заменить на чтото другое
3) найти и удалить
вот что только не пробывал... и с QListWidgetItem, и прост строку передавать... ниче не получается...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 18.11.2009, 20:50
Сообщение #2


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

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

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




Репутация:   94  


Цитата(FenixTES @ 18.11.2009, 23:46) *
вот что только не пробывал... и с QListWidgetItem, и прост строку передавать... ниче не получается...
блин, что за сообщения такие?
Что пробовал?
Что значит "не получается"?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
FenixTES
  опции профиля:
сообщение 18.11.2009, 21:09
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 20
Регистрация: 14.11.2009
Пользователь №: 1230

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 18.11.2009, 20:50) *
Цитата(FenixTES @ 18.11.2009, 23:46) *
вот что только не пробывал... и с QListWidgetItem, и прост строку передавать... ниче не получается...
блин, что за сообщения такие?
Что пробовал?
Что значит "не получается"?

к примеру
QString qstr = "One";
qlwPeople->addItem(&QListWidgetItem(qstr));

вроде все сделал правильно, но в листе не появляется строка...
с поиском тоже чтото пробывал, не получилось
QList<QListWidgetItem *> findNick = qlwPeople->findItems(qstrNick,Qt::MatchFixedString);
        findNick[0]->setText(qstrNick1);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 18.11.2009, 22:01
Сообщение #4


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

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

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




Репутация:   94  


что такое qlwPeople?

метод addItem какой тип аргумента принимает?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
FenixTES
  опции профиля:
сообщение 18.11.2009, 22:11
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 20
Регистрация: 14.11.2009
Пользователь №: 1230

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 18.11.2009, 22:01) *
что такое qlwPeople?

метод addItem какой тип аргумента принимает?

1) QListWidget
2) QString и QListWidgetItem*
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 18.11.2009, 22:16
Сообщение #6


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

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

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




Репутация:   94  


Цитата(FenixTES @ 19.11.2009, 1:11) *
QString и QListWidgetItem*
тогда непонятна цель создания объекта QListWidgetItem на стеке (как обычной переменной), затем получение её адреса и передача адреса в метод addItem(QListWidgetItem*)
Почему не сразу строку:
qlwPeople->addItem(qstr);

???
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
FenixTES
  опции профиля:
сообщение 18.11.2009, 22:29
Сообщение #7


Студент
*

Группа: Участник
Сообщений: 20
Регистрация: 14.11.2009
Пользователь №: 1230

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 18.11.2009, 22:16) *
Цитата(FenixTES @ 19.11.2009, 1:11) *
QString и QListWidgetItem*
тогда непонятна цель создания объекта QListWidgetItem на стеке (как обычной переменной), затем получение её адреса и передача адреса в метод addItem(QListWidgetItem*)
Почему не сразу строку:
qlwPeople->addItem(qstr);

???

спс, то я недосмотрел)))
а как изменить запись?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 18.11.2009, 23:01
Сообщение #8


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

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

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




Репутация:   94  


Цитата(FenixTES @ 19.11.2009, 1:29) *
а как изменить запись?
т.е.?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
FenixTES
  опции профиля:
сообщение 19.11.2009, 11:46
Сообщение #9


Студент
*

Группа: Участник
Сообщений: 20
Регистрация: 14.11.2009
Пользователь №: 1230

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 18.11.2009, 23:01) *
Цитата(FenixTES @ 19.11.2009, 1:29) *
а как изменить запись?
т.е.?

найти запись, изменить...
там я смотрел по ассистенту, есть метод editItem, но только я не догнал, как им пользоваться, принимает один аргумент, вот
void QListWidget::editItem ( QListWidgetItem * item )

Starts editing the item if it is editable.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 19.11.2009, 13:46
Сообщение #10


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

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

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




Репутация:   94  


Цитата(FenixTES @ 19.11.2009, 14:46) *
но только я не догнал, как им пользоваться
програмный способ начать редактировать, равносилен по своему эффекту, двойному щелчку мыши по соответсвующей записи в виджете.

Разбей задачи на две :
1) Как найти элемент в QListWidget'е, если известен текст/содержание элемента (Я правильно понял задачу?)
2) Как установить текст в заданный элемент QListWidget'а



п.1: Твой способ поиска был верным, за исключением того, что ты не проверял - "а нашлось ли что-нибудь?"
п.2: Т.к. элементы в виджете-списке представлены классом QListWidgetItem, то в нём и искать надо.

П.С. когда ищешь методы помни, что в Qt принято:
чтобы что-то получить нужно вызвать foo()
чтобы что-то задать/установить нужно вызвать setFoo(myValue)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




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