版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Ilson_/article/details/83928248
对于QToolBar我们虽然把所有的功能都添加上去了,但是有时候我们需要对其功能进行控制,比如说我们需要其输入密码才能有权限打开某一些功能,对于没有密码的就屏蔽一些功能.
首先我们给QToolBar添加一个按钮:
QAction *pAction1, *pAction2, *pAction3;
QMenu *pMenu = new QMenu;
pAction1 = new QAction(QIcon(":/Tools/Icon/Tools/line.png"), tr("Line"), pMenu);
pAction2 = new QAction(QIcon(":/Tools/Icon/Tools/hline.png"), tr("Horizontal Line"), pMenu);
pAction3 = new QAction(QIcon(":/Tools/Icon/Tools/vline.png"), tr("Vertical Line"), pMenu);
connect(pAction1, SIGNAL(triggered()), this, SLOT(lineClick()));
connect(pAction2, SIGNAL(triggered()), this, SLOT(hlineClick()));
connect(pAction3, SIGNAL(triggered()), this, SLOT(vlineClick()));
pMenu->addAction(pAction1);
pMenu->addAction(pAction2);
pMenu->addAction(pAction3);
QToolButton *pButton = new QToolButton(this);
pButton->setMenu(pMenu);
pButton->setPopupMode(QToolButton::MenuButtonPopup);
m_pToolBar->addWidget(pButton);
然后我们对其进行隐藏,如果直接使用 pButton->setVisible(false)的话是没有效果的,正确的做法是:
//因为我们只添加了一个按钮,所以只需要取其下标为0的那个
QList<QAction *> list = m_pToolBar->actions();
list[0]->setVisible(false);