對QToolBar其中的某些項進行控制顯示/隱藏
阿新 • • 發佈:2018-11-10
對於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);