1. 程式人生 > >對QToolBar其中的某些項進行控制顯示/隱藏

對QToolBar其中的某些項進行控制顯示/隱藏

        對於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);