QTableView : cannot get its "natural" size in a grid layout

I have a simple problem but cannot get it working. I have a small QTableView, alone inside a much bigger parent widget. I would like to display the table with its full size in the middle of its parent (centered).

I do not want to expand the size of the table with ugly wide rows or columns or extra space after used lines and columns. I just want my 3 lines and 4 columns with their "natual" size, adjusted to their content. Right in the middle of the parent widget.

I create a 3x3 grid layout in the parent widget. The table is in the center element of the layout and is surrounded by four spacers. I set a fixed size policy on the table. If I understand correctly the doc, this means that the table widget requests a size exactly identical to its size hint. Then, I expect the spacers to let the table expand as requested and place it in the center of the parent widget.

However, what I get is a table widget which is either smaller (with a scroll bar) or bigger than the expected size. But the table is never displayed with its exact size. The logic behind the size of the surrounding spacers is unclear.