2012-02-18 216 views
2

這工作...QToolButton在添加到QToolBar後爲什麼不能隱藏?

QToolButton * toolbutton = new QToolButton(this); 

//hide before addWidget 
toolbutton->hide(); 

addWidget(toolbutton); 

但這並不

QToolButton * toolbutton = new QToolButton(this) 

addWidget(toolbutton); 

//hide after addWidget 
toolbutton->hide(); 

是否有其他讓我一個QToolButton後實際隱藏它添加到在QToolBar後?我需要在運行時。

回答

1

一種替代方法是添加一個QAction而不是一個小部件,然後隱藏QAction。我已經嘗試過它,它與QAction :: setVisible(false)一起使用。 (3) - > setVisible(false);你也可以做類似QToolBar :: actions()。at(3) - > setVisible(false);如果你知道QToolBar中的部件位置。

0
toolbar->actions().at(0)->setVisible(false); 
5

QAction * QToolBar::addWidget (QWidget * widget)

您應該隱藏返回的QAction

+0

有趣的建議。如果大部分工具欄項目都是QActions,並且只有一個或兩個QWidget,這將是一個優雅的解決方案。 – 2012-02-19 03:08:51

+0

即使您將QWidget添加到QToolBar,它也會爲其返回'QAction *':'QAction * QToolBar :: addWidget(QWidget * widget)' – 2012-12-19 08:58:26

相關問題