PDA

View Full Version : QTreeWidget questions



fellobo
2nd May 2006, 17:52
Question one:
I have a QTreeWidget with items and I want to grab the collapsed/expanded but it returns a QModelIndex. So how do I grab a collapse or expand that will give me back a QTreeWidgetItem? All the post I've read about this never really answered the question!

Question two:
How do you remove the column at the top? I only have one column and I don't like seeing the 0 at the top of the column. I've searched the doc's but might be missing it or it might be something done in QTDesigner.

Question three:
The following code was how I was thinking of changing the icon from open to close an image is there a better way?


p_tree_widget->setColumnCount(1);
connect(p_tree_widget, SIGNAL(collapsed(QModelIndex &)), this, SLOT(collapsed(QModelIndex &)));
connect(p_tree_widget, SIGNAL(expanded (QModelIndex &)), this, SLOT(expanded (QModelIndex &)));
QTreeWidgetItem *p_folder = new QTreeWidgetItem(project_tree);
p_folder->setText(0, tr("Content"));
p_folder->setIcon(0, QIcon(":/images/closed_folder.png"));
QTreeWidgetItem *p_data = new QTreeWidgetItem(project_tree);
p_data->setText(0, tr("data"));
p_data->setIcon(0, QIcon(":/images/data.png"));

void collapsed ( const QModelIndex &index )
{
// get QTreeWidgetItem
p_collapsed->setIcon(0, QIcon(":/images/closed_folder.png"));
};
void expanded ( const QModelIndex &index )
{
// get QTreeWidgetItem
p_collapsed->setIcon(0, QIcon(":/images/open_folder.png"));
};


Thanks for any help that you may give me!

munna
2nd May 2006, 18:19
Question one:
I have a QTreeWidget with items and I want to grab the collapsed/expanded but it returns a QModelIndex. So how do I grab a collapse or expand that will give me back a QTreeWidgetItem? All the post I've read about this never really answered the question!

connect itemExpanded and itemCollapsed signal to your slots


Question two:
How do you remove the column at the top? I only have one column and I don't like seeing the 0 at the top of the column. I've searched the doc's but might be missing it or it might be something done in QTDesigner.

use setItemHidden(headerItem(),true);

fellobo
2nd May 2006, 18:20
The QTreeWidget doesn't have a signal collapsed or expanded. I thought I read that within the QT documenation http://doc.trolltech.com/4.1/qtreewidget.html#itemExpanded is the better way to go....

munna
2nd May 2006, 18:26
void QTreeWidget::itemExpanded ( QTreeWidgetItem * item ) [signal]

This signal is emitted when the specified item is expanded so that all of its children are displayed.

See also setItemExpanded() and isItemExpanded().

This is what the documentation says. So using this signal you can know that an item is expanded and also the item which is getting expnaded. Same applies for itemCollapsed.

fellobo
2nd May 2006, 18:39
Thanks munna,
I must have been in the QTreeView (browsing back that is where I was although I don't know why.)

I found the correct documentation and now have it working.... Thanks for the help