-
Bug
-
Resolution: Unresolved
-
P3: Somewhat important
-
None
-
6.9
-
None
QToolBar::addAction and QToolBar::addWidget are slightly different in that QAction::setVisible will:
- Show/Hide the Button if added via QToolBar::addAction(QAction)
- Enable/Disable the Button if added via QToolBar::addWidget(QToolButton)
This distinction seems to make little sense to the user.
See the example:
#include <QApplication> #include <QToolBar> #include <QMainWindow> #include <QToolButton> int main(int argc, char *argv[]) { QApplication a(argc, argv); QMainWindow mainWindow; QToolBar toolBar; mainWindow.setCentralWidget((QWidget*)&toolBar); QAction action; action.setText("Hello"); QAction action2; action2.setText("World"); QToolButton button; button.setDefaultAction(&action2); QObject::connect(&action, &QAction::triggered, &action, [&action]{ action.setVisible(false); }); QObject::connect(&action2, &QAction::triggered, &action2, [&action2]{ action2.setVisible(false); }); toolBar.addAction(&action); toolBar.addWidget(&button); mainWindow.show(); return a.exec(); }
Clicking "Hello" will hide it, but clicking "World" will disable it.