how to add children to the QTree Widget
-
@mrjj but my size is two. I have inserted two data and i am trying to see the second data then it should work right?
-
@ManiRon
Yes, you access to high index.
as u start with 1.
and list start with zero.
So that can crash. -
@ManiRon
Its a list of QTreeWidgetItems * ( pointers)
So you must add them to a QList then give QList to tree.
Its just a function to add multiple items at once.// top one QTreeWidgetItem *treeItemROOT = new QTreeWidgetItem(ui->treeWidget); treeItem->setText(0, name); treeItem->setText(1, description); // first child QTreeWidgetItem *treeItem = new QTreeWidgetItem(); treeItem->setText(0, name); treeItem->setText(1, description); treeItemROOT ->addChild(treeItem); // add child to the root -
@ManiRon
Its a list of QTreeWidgetItems * ( pointers)
So you must add them to a QList then give QList to tree.
Its just a function to add multiple items at once.// top one QTreeWidgetItem *treeItemROOT = new QTreeWidgetItem(ui->treeWidget); treeItem->setText(0, name); treeItem->setText(1, description); // first child QTreeWidgetItem *treeItem = new QTreeWidgetItem(); treeItem->setText(0, name); treeItem->setText(1, description); treeItemROOT ->addChild(treeItem); // add child to the root -
@mrjj said in how to add children to the QTree Widget:
treeItem
thats what can u give any example code for that "Its a list of QTreeWidgetItems * ( pointers)
So you must add them to a QList then give QList to tree."@ManiRon
QList<QTreeWidgetItem> mylist;
mylist.append( new QTreeWidgetItem); // might want to set some text also
..
...
call addChildren with mylist.However, it wont help you build the tree, just other way of adding more than one item at a time.
-
@ManiRon
QList<QTreeWidgetItem> mylist;
mylist.append( new QTreeWidgetItem); // might want to set some text also
..
...
call addChildren with mylist.However, it wont help you build the tree, just other way of adding more than one item at a time.
-
@ManiRon
QList<QTreeWidgetItem> mylist;
mylist.append( new QTreeWidgetItem); // might want to set some text also
..
...
call addChildren with mylist.However, it wont help you build the tree, just other way of adding more than one item at a time.
-
I gave like this QList<QTreeWidgetItem>m_Data;
m_Data.append(new QTreeWidgetItem);it throwed error saying
error: no matching function for call to 'QList<QTreeWidgetItem>::append(QTreeWidgetItem*)'
m_Data.append(new QTreeWidgetItem);
^Hi
List must be of pointers.
QList<QTreeWidgetItem *>
(u missed the *) -
Now I gave like this sir,
QList<QTreeWidgetItem*>m_Data;
m_Data.append(new QTreeWidgetItem);QString Data = 0;
for(int i=1;i<3;i++)
{
Data = QString("SubItem"+QString::number(i));
m_Data.append(Data.toLatin1().constData());
item->addChildren(m_Data);
}it throws error
error: no matching function for call to 'QList<QTreeWidgetItem*>::append(const char*)'
m_Data.append(Data.toLatin1().constData());
^ -
Now I gave like this sir,
QList<QTreeWidgetItem*>m_Data;
m_Data.append(new QTreeWidgetItem);QString Data = 0;
for(int i=1;i<3;i++)
{
Data = QString("SubItem"+QString::number(i));
m_Data.append(Data.toLatin1().constData());
item->addChildren(m_Data);
}it throws error
error: no matching function for call to 'QList<QTreeWidgetItem*>::append(const char*)'
m_Data.append(Data.toLatin1().constData());
^hi
well u try to add strings to it.
m_Data.append(Data.toLatin1().constData());
and it wants a QTreeWidgetItem *I think you mean something like
for(int i=1;i<3;i++) { Data = QString("SubItem"+QString::number(i)); m_Data.append(Data.toLatin1().constData()); QTreeWidgetItem* item2=new QTreeWidgetItem(); // set text etc on item m_Data.append(item2); item->addChildren(m_Data); }but why do it liek that since u new it there anyway so just add it directly ?
-
How are you trying to add it ?
aaa bbb cccor
aaa bbbb ccc ddd -
Something like this , top level item = aaaa
children = bbbb,
cccc,
dddd,
eeee,
and child of eeee is ffff -
@ManiRon
Ok.
Nothing odd then :)
Then you just need to keep aaaa pointer around and
eeee so you can add child to that.@mrjj sir i tried the way u mentioned but i got like this

my code:
QList<QTreeWidgetItem*>m_Data;
m_Data.append(new QTreeWidgetItem);QString Data = 0;
for(int i=1;i<3;i++)
{
Data = QString("SubItem"+QString::number(i));
QTreeWidgetItem* item1 =new QTreeWidgetItem(ui->treeWidget);
item1->setText(0,"data1");
m_Data.append(item1);
item1->setText(0,Data.toLatin1().constData());
m_Data.append(item1);
item->addChild(item1);
item1->addChildren(m_Data);
} -
@mrjj sir i tried the way u mentioned but i got like this

my code:
QList<QTreeWidgetItem*>m_Data;
m_Data.append(new QTreeWidgetItem);QString Data = 0;
for(int i=1;i<3;i++)
{
Data = QString("SubItem"+QString::number(i));
QTreeWidgetItem* item1 =new QTreeWidgetItem(ui->treeWidget);
item1->setText(0,"data1");
m_Data.append(item1);
item1->setText(0,Data.toLatin1().constData());
m_Data.append(item1);
item->addChild(item1);
item1->addChildren(m_Data);
}@ManiRon
hi
seems like blank texts. also i dont see u new item.??
anyway, that loop looks so messy and hard to read
if you use functions, it can look like thisQTreeWidgetItem * addTreeRoot(QTreeWidget* treeWidget, QString name, QString description) { QTreeWidgetItem *treeItem = new QTreeWidgetItem(treeWidget); treeItem->setText(0, name); treeItem->setText(1, description); return treeItem; } QTreeWidgetItem * addTreeChild(QTreeWidgetItem *parent,QString name, QString description) { QTreeWidgetItem *treeItem = new QTreeWidgetItem(); treeItem->setText(0, name); treeItem->setText(1, description); parent->addChild(treeItem); return treeItem; } -- QTreeWidgetItem* root=addTreeRoot(ui->treeWidget,"ROOT","text"); addTreeChild(root,"bbbb","text"); addTreeChild(root,"ccc","text"); addTreeChild(root,"dddd","text"); QTreeWidgetItem* last=addTreeChild(root,"eeee","text"); addTreeChild(last,"eeeee","text"); // notice last as parent
-
@ManiRon
hi
seems like blank texts. also i dont see u new item.??
anyway, that loop looks so messy and hard to read
if you use functions, it can look like thisQTreeWidgetItem * addTreeRoot(QTreeWidget* treeWidget, QString name, QString description) { QTreeWidgetItem *treeItem = new QTreeWidgetItem(treeWidget); treeItem->setText(0, name); treeItem->setText(1, description); return treeItem; } QTreeWidgetItem * addTreeChild(QTreeWidgetItem *parent,QString name, QString description) { QTreeWidgetItem *treeItem = new QTreeWidgetItem(); treeItem->setText(0, name); treeItem->setText(1, description); parent->addChild(treeItem); return treeItem; } -- QTreeWidgetItem* root=addTreeRoot(ui->treeWidget,"ROOT","text"); addTreeChild(root,"bbbb","text"); addTreeChild(root,"ccc","text"); addTreeChild(root,"dddd","text"); QTreeWidgetItem* last=addTreeChild(root,"eeee","text"); addTreeChild(last,"eeeee","text"); // notice last as parent
