I am trying to have a QTreeView fit into a horizontal layout perfectly.
My layout setup looks like this:

I want the horizontal width of Vertical Layout 1 to be defined by the required widths of the QTreeView Column Headers. In other words the Vertical Layout 1 should stretch horizontally to make sure its width always exactly matches the width required by QTreeView column headers. Therefore the layout stretch factors of the topmost horizontal layout are set to (0,1) so that the Vertical Layout 1 does not stretch and Vertical Layout 2 does.
This is what it looks like in action:


The good news is that when QTreeView items are expanded, the headers also expand and in turn the Vertical Layout 1 stretches accordingly.
The problem is however highlighted on this picture:

For some reason there is redundant unused space within QTreeView itself, which has constant width in both collapsed and expanded states.
All the headers within the QTreeView are set to Resize to Contents, the Size policy of the QTreeView is set to 'AdjustToContents' and last header section stretch is set to False, which I think is correct:
self.accountsTree.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.SizeAdjustPolicy.AdjustToContents)
self.accountsTree.header().setStretchLastSection(False)
self.accountsTree.header().setSectionResizeMode(
AccountTreeColumns.COLUMN_NAME,
QHeaderView.ResizeMode.ResizeToContents,
)
self.accountsTree.header().setSectionResizeMode(
AccountTreeColumns.COLUMN_BALANCE,
QHeaderView.ResizeMode.ResizeToContents,
)
self.accountsTree.header().setSectionResizeMode(
AccountTreeColumns.COLUMN_BALANCE_BASE,
QHeaderView.ResizeMode.ResizeToContents,
)
self.accountsTree.header().setSectionResizeMode(
AccountTreeColumns.COLUMN_SHOW,
QHeaderView.ResizeMode.ResizeToContents,
)
I am using PyQt 6.4 and Qt Designer.
I tried playing around with stretch factors, layout constraints and different header section resize modes, but everything I tried only led to worse results. I don't understand where the extra space comes from, other than that the setup works exactly how I want it to. I must be missing some setting somewhere but I can't seem to figure it out.
Thanks for any tips