2012-02-18 16 views
2
この作品

...QToolButtonをQToolBarに追加した後、QToolButtonを隠すことができないのはなぜですか?

QToolButton * toolbutton = new QToolButton(this); 

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

addWidget(toolbutton); 

をしかし、これはしないの

QToolButton * toolbutton = new QToolButton(this) 

addWidget(toolbutton); 

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

それはQToolBarに追加された後、私は実際にQToolButton後に非表示にすることができますので、代替はありますか?私は実行時にする必要があります。

答えて

1

代わりに、ウィジェットの代わりにQActionを追加し、QActionを非表示にすることもできます。私はそれを試して、それはQAction :: 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であり、その上に1つまたは2つのQWidgetsしかない場合は、洗練されたソリューションになります。 –

+0

QWidgetをQToolBarに追加しても、それに対して 'QAction *'が返されます: 'QAction * QToolBar :: addWidget(QWidget * widget)' –

関連する問題