我有两列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);
答案 0 :(得分:2)
tree_widget_->setColumnWidth(1, 10)
应该做你想做的事。
当您将QTushWidget作为顶级项目分配给QTreeWidget时,QTreeWidget对象通常被指定为此按钮的父级,因此该按钮的所有几何都由其父级处理。
看看docs。
如果您希望按钮具有布局(在列中)的自己的几何图形,您可以创建空白窗口小部件,将其设置为TreeWidget作为项目,并使您的按钮成为该空白窗口小部件的子项,具有所有便利性Qt。中的布局。
答案 1 :(得分:2)
我尝试setColumnWidth
,但这不起作用。
稍后我试试tree_widget_->header()->setResizeMode(1,QHeaderView::ResizeToContents);
这是工作!