This can be done easily, but it is not immediately obvious how because QTreeView
always displays the expander icons next to model column 0, and there is no way to change that. However, what you can do is change the order in which the model columns are displayed in the view, so model column 0 with its expander icons need not be at the very left.
Put the data you want to show to the left of the expander icons into model column 1 and the data you want to show to the right of the expander icons into model column 0. This is just the other way round as you would normally expect. Then, after populating the tree simply call tree->header()->moveSection(1,0)
to move column 1 to the left of column 0.
Credits to Michael Durland who posted this solution on a Qt mailing list.