有没有办法从代码中设置QTreeWidget的列宽?我想改变第一列的默认宽度。我正在使用PySide。
QHeaderView::resizeSection()可以解决这个问题,在C++中应该是这样的:
myTreeWidget->headerView()->resizeSection(0 /*column index*/, 100 /*width*/);
对于寻找 C++ Qt 解决方案的人(已在 5.12 版本上测试):
// Important to call setMinimumSectionSize because resizeSection wont work if your width is less than the minimum
treeWidget->header()->setMinimumSectionSize(25);
treeWidget->header()->resizeSection(1 /*column index*/, 25 /*width*/);
// You might also need to use this if you want to limit the size of your last column:
treeWidget->header()->setStretchLastSection(false);
resizeSection
函数。你可以在PySide2中使用以下方法:header = self.treeWidget.header()
header.setSectionResizeMode(QtWidgets.QHeaderView.ResizeToContents)
header.setStretchLastSection(False)
header.setSectionResizeMode(5, QtWidgets.QHeaderView.Stretch)
QTreeWidget
中没有headerView
函数。我认为你真正想使用的是QTreeWidget::header()
(至少对于Qt5而言——也许答案是针对Qt4的)。 - Raven