PDA

View Full Version : list view item problem..



addu
29th May 2009, 06:52
Hi Friends..

I am having some number of items in my list....

That items i am going to display in list view.....

But it is showing half of the number of items only ...remaining items are empty...



QStandardItemModel *model = new QStandardItemModel;
for(int i =0;i<list.size();i++)
{

QStandardItem *item = new QstandardItem;
model->appendRow(item);

}
ui->listView_2->setModel(model);
for(int i =0;i<list.size();i++)
{
statusUser = list.takeFirst();
// QMessageBox::information(0,"name",QString(statusUser->user.name));
t = new Tweet(statusUser->user.name,statusUser->status.text,statusUser->user.profileImageUrl);
model->item(i)->setSizeHint(t->size());
t->resize(ui->listView_2->size().width()+50, t->size().height());
ui->listView_2->setIndexWidget(model->item(i)->index(), t);
}




How do solve this problem...


Thanks

Addu


Thanks

Yuvaraj R

faldzip
29th May 2009, 08:23
It's because of takeFirst() method. It takes the first element so it means it removes it from the list. Let's say you have 20 items at the begining then:
1. first loop pass:
i = 0,
size() = 20
2. second loop pass:
i = 1
size() = 19

...
10.
i = 9;
size() = 11;

11.
i = 10;
size() = 10
end of loop.

Use .at(i) instead.

addu
29th May 2009, 08:37
Thanks

I read the documents....Your way is exactly correct..

But for me ...,Qt showing no member named as at ,if i use list.at[i]..

here i descibe the full function.


void Widget::DisplayList(QLinkedList<Returnables::StatusUser*> list, QString header)
{
Returnables::StatusUser *statusUser =NULL;

model = new QStandardItemModel(this);
for(int i=0;i<=list.size();i++)
{
//QMessageBox::information(0,"",QString::number(i),QString::number(list.size()));
QStandardItem *item = new QStandardItem;

model->appendRow(item);
}
ui->listView_2->setModel(model);

for(int i=0;i<=list.size();i++)
{
statusUser = list.at(i);
//QMessageBox::information(0,"name",QString(list[i]));
t = new Tweet(statusUser->user.name,statusUser->status.text,statusUser->user.profileImageUrl);
model->item(i)->setSizeHint(t->size());
t->resize(ui->listView_2->size().width()+50, t->size().height());
ui->listView_2->setIndexWidget(model->item(i)->index(), t);
}
}


And also it printint the half tweets is same..

addu
29th May 2009, 09:11
Sorry ..


Here i am using Qlinked list...It didn't support at member function.

addu
29th May 2009, 09:21
Hi

I don't know how solve this issue...

In API they have used the linked list..

please help me

addu
29th May 2009, 12:26
Hi Friends ..

Still i am struggling with listview items....

please help us