views:

238

answers:

2

Is it possible to have individual indentation of items in a QTreeWidget?

In specific, I have have a column containing both text, icon and for some of them a CheckBox. The items without a CheckBox gets shifted to the left so the indentation of the icon and the text is not inline with the others. Could maybe be fixed with a hidden CheckBox if that is possible?

A: 

You can try using the QWidget::setContentMargins() on the widget returned by QTreeWidget::itemWidget().

gregseth
Hi. Thanks a lot for your reply. Whenever I try to do something with the QWidget returned by QTreeWidget::itemWidget() my app crashes. Do you know why can happen? I dont call this before the item hierarchy is set up.
Magus
Oh, now you say that, I recall that `QTreeWidget::itemWidget()` returns a non `NULL` value only if the widget was set with `QTreeWidget::setItemWidget()`. To solve your problem I guess you have to create your own item displaying the icon and handlig the checkbox/extra-space.
gregseth
A: 

Hey,

Maybe the use of Delegates will give you a nice and proper implementation. You'll have the opportunity to re-implement the paint() and sizeHint() methods, and therefore, choose the way your QTreeWidgetItem are being drawn...

More documentation here : http://doc.trolltech.com/4.6/model-view-delegate.html

An example : http://doc.trolltech.com/4.6/itemviews-pixelator.html

Hope it helps a bit !

Andy M
Hi, thanks a lot for your input. I'm currently not using the Model/view framework, just ordinary QTreeWidgetItems so I guess I cant uses the delegate approach here. But thanks!
Magus