QTreeView中间列填充宽度空间而不是最后一列

Seb*_*btm 22 size qt header qtreeview

怎么做到这一点:

中间栏填充空间

我已经尝试过这种方式:

view->header()->setResizeMode(INDEX_COLUMN_SKU, QHeaderView::Interactive);
view->header()->setResizeMode(INDEX_COLUMN_NAME, QHeaderView::Stretch);
view->header()->setResizeMode(INDEX_COLUMN_QUANTITY, QHeaderView::Interactive);
view->header()->setResizeMode(INDEX_COLUMN_PRICE, QHeaderView::Interactive);
Run Code Online (Sandbox Code Playgroud)

但不起作用.

syn*_*tel 42

你还记得to view->header()->setStretchLastSection(false)吗?

这里有些例子:

默认行为

默认行为

只是禁用最后一列的拉伸:

treeView->header()->setStretchLastSection(false);
Run Code Online (Sandbox Code Playgroud)

Stretch_Disabled

两个属性合并:

treeView->header()->setStretchLastSection(false);
treeView->header()->setResizeMode(1, QHeaderView::Stretch);   
Run Code Online (Sandbox Code Playgroud)

从QT5开始:

treeView->header()->setStretchLastSection(false);
treeView->header()->setSectionResizeMode(1, QHeaderView::Stretch); //! qt5 api change 
Run Code Online (Sandbox Code Playgroud)

Stretch_Disabled + Resizable_Second_Col

  • 两个快速评论:首先,在Qt 5中,setResizeMode已被重构为setSectionResizeMode.其次,必须在调用setSectionResizeMode之前调用setStrechLastSection,否则,它无法正常工作. (7认同)