前言:本文介绍了两种模式的下拉式菜单,一共有3种,另一种是QToolButton::DelayedPopup,之后用到在加进去。
1)QToolButton::InstantPopup下拉式菜单,会在右下角显示一个小的箭头,当按下工具按钮时,菜单立即显示出来。在此模
式下,按钮本身的动作不会被触发,如图:
2)QToolButton::MenuButtonPopup下拉式菜单,在这种模式下,工具按钮显示一个特殊的箭头,表示有一个菜单。当按下按
钮的箭头部分时,将显示菜单,当按下下拉式按钮时,将执行该按钮响应的动作,如图:
程序设计:
void myMainWindow::createSelectionPopMenu()
{
//创建下拉菜单
QMenu *menuSelection = new QMenu(this);
menuSelection->addAction(ui->actSelAll);
menuSelection->addAction(ui->actSelNone);
menuSelection->addAction(ui->actSelInvs);
//设置弹出菜单的样式QToolButton::MenuButtonPopup
ui->tBtnSelectItem->setPopupMode(QToolButton::MenuButtonPopup);
//设置按钮样式
ui->tBtnSelectItem->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
//为按钮设置默认Action
ui->tBtnSelectItem->setDefaultAction(ui->actSelPopMenu);
//为按钮设置下拉菜单
ui->tBtnSelectItem->setMenu(menuSelection);
//工具栏的下拉式菜单按钮,QToolButton::InstantPopup
QToolButton *aBtn =new QToolButton(this);
aBtn->setPopupMode(QToolButton::InstantPopup);
aBtn->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
aBtn->setDefaultAction(ui->actSelPopMenu);
aBtn->setMenu(menuSelection);
//将下拉菜单添加到工具栏
ui->mainToolBar->addWidget(aBtn);
//设置分隔符
ui->mainToolBar->addSeparator();
}
效果图
注:本程序中的QToolButton::MenuButtonPopup下拉式菜单的按钮关联了反选的操作