Qt, просветите с QListView

Модератор: Модераторы разделов

Аватара пользователя
ezheg
Сообщения: 258
Статус: джидай 3-го уровня
ОС: Mac OS X

Qt, просветите с QListView

Сообщение ezheg »

1. Как добавляют новый элемент в QListView?
Нет, я понимаю, что можно написать что-нибудь типа:

Код: Выделить всё

QListViewItem a = new QListViewItem(MyListView,"a", "b", "c");

но тогда, после создания всех элементов, (например в цикле), a будет являтся только последним элементом, а к первым уже по имени a не обратишься...я просто путаюсь немного, как поступают проффесионалы? ;) (если приходится добавлять неизвестное кол-во QListViewItem в цикле)

2. Можно-ли создать один Column невидимый, а все остальные видимые?

3. Какие слоты использовать, чтобы в случае создания n>=0 элементов QListViewItem, первый созданный из них автоматически выделялся, т.е. был selected? (т.е., юзер должен производить некоторые манипуляции с одним из QListViewItem, предварительно выделив его; если же юзер слишком ленивый, то выделялся бы первый, т.е. хоть какой-нибудь :) )

piton3000 добавил в 31.03.2005 12:06

мм...видимо если мне объяснят первый вопрос, 3й сам собою снимется - нужно же будет для первого элемента делать selected(true)...
Спасибо сказали:
qb_developer
Сообщения: 18

Re: Qt, просветите с QListView

Сообщение qb_developer »

1.
а) В приведенном есть коде ошибка, правильно будет

Код: Выделить всё

QListViewItem *a = new QListViewItem(MyListView,"a", "b", "c");


б)RTFM
QListView::
QListViewItem * firstChild () const
QListViewItem * lastItem () const
int childCount () const
QListViewItem::
QListViewItem * itemAbove ()
QListViewItem * itemBelow ()

Пример (не проверял ;)):

Код: Выделить всё

n=10;
i=0;
QListViewItem *a = MyListView->firstChild();
while(a && ++i<=n)
  a = a->itemBelow();
вот и n-й елемент


2. Не hide, но может сработать :)))
QListView::setColumnWidth(column, 0)
Спасибо сказали:
Аватара пользователя
ezheg
Сообщения: 258
Статус: джидай 3-го уровня
ОС: Mac OS X

Re: Qt, просветите с QListView

Сообщение ezheg »

1.
спасибо за помощь. помогло.
только вот почему, объявив (глобально) QListViewItem *a, этот элемент, при создании его
вот так:

Код: Выделить всё

a = new QListViewItem(myListView,"a", "b", "c");

сразу добавляется в QListView? я думал, его еще нужно вставить вот так:

Код: Выделить всё

myListView->insertItem(a);

ну, или как ты описал - используя список..

2.

Код: Выделить всё

QListView::setColumnWidth(column, 0)

не, не сработало. как нужный Column показывался, так и показывается..
у меня правда для QListView стоит resizeMode = AllColumns, ну и юзаются всякие hbox'ы и прочие layout'ы..может из-за этого. :blink:
Спасибо сказали:
qb_developer
Сообщения: 18

Re: Qt, просветите с QListView

Сообщение qb_developer »

1. читай qt хелп
2. увы, не работал, не знаю
Спасибо сказали: