Почему 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? Мне нужно во время выполнения.

3 ответа

Решение

Одна альтернатива - добавить QAction вместо виджета, а затем скрыть QAction. Я пробовал, и он работает с QAction::setVisible(false).

Вы также можете сделать что-то вроде QToolBar::actions(). At(3)->setVisible(false); если вы знаете положение виджета в QToolBar.

QAction * QToolBar::addWidget ( QWidget * widget )

Вы должны скрыть возвращенный QAction

toolbar->actions().at(0)->setVisible(false);
Другие вопросы по тегам