2016-01-26 66 views
0

我有兩列QTreeWidget。第一列是文本,第二列是QPushButton。我無法指定按鈕的大小和第二列的大小。當您嘗試設置內容列的大小時,第二列將消失。如何更改第二列的寬度?QTreeWidget - 具有小部件的列的寬度

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); 

回答

1

我嘗試setColumnWidth,但它是行不通的。 後來我嘗試tree_widget_->header()->setResizeMode(1,QHeaderView::ResizeToContents); 它是工作!

1

tree_widget_->setColumnWidth(1, 10)應該做你想做的。 當您將QPushButton指定爲QTreeWidget作爲頂級項目時,QTreeWidget對象將被指定爲此按鈕的父項,因此該按鈕的所有幾何都由其父項處理。 看看docs

如果您希望您的按鈕具有自己的佈局佈局(在列內),您可以製作空白小部件,將其設置爲TreeWidget作爲一個項目,並使您的按鈕成爲該空白小部件的子項,並提供所有便利Qt中的佈局。

相關問題