QTreeWidget - 带小部件的列宽

QTreeWidget - width of column with widget

我有两列的 QTreeWidget。第一列是文本,第二列是 QPushButton。我无法指定按钮的大小和第二列的大小。当您尝试设置内容栏的大小时,第二栏消失了。如何改变第二列的宽度?

tree_widget_->setColumnCount(2);
tree_widget_->header()->resizeSection(1, 10);
tree_widget_->header()->setStretchLastSection(false);
tree_widget_->header()->setResizeMode(0,QHeaderView::Stretch);
tree_widget_->topLevelItem(4)->addChild( wiop = new QTreeWidgetItem(QStringList() << QString( "Расстояние: %1 км" ).arg( range ) ) );
tree_widget_->setItemWidget(tree_widget_->topLevelItem(4)->child(0),1,range_plot_button_ = new QPushButton("График",tree_widget_));
range_plot_button_->resize(10,10);

tree_widget_->setColumnWidth(1, 10) 应该做你想做的。 当您将 QPushButton 作为顶级项目分配给 QTreeWidget 时,QTreeWidget 对象通常被分配为该按钮的父级,因此该按钮的所有几何形状都由其父级处理。 看看docs.

如果您希望您的按钮拥有自己的布局几何图形(在列内),您可以制作空白小部件,将其作为一个项目设置为 TreeWidget,并使您的按钮成为该空白小部件的子级Qt 中布局的便利性。

我尝试了 setColumnWidth,但它不起作用。 稍后我尝试tree_widget_->header()->setResizeMode(1,QHeaderView::ResizeToContents); 这是工作!