1.生成菜单栏
//生成菜单栏
QMenu *pMenu = new QMenu(this);
pMenu->addAction("Test1");
//添加分割线
pMenu->addSeparator();
pMenu->addAction("Test2");
pMenu->addAction("Test3");
//绑定控件
ui->pushButton->setMenu(pMenu);
运行示例如下
2.响应Action
在1代码示例中绑定控件之前插入槽函数
//槽函数
connect(pMenu,SIGNAL(triggered(QAction*)),this,SLOT(MenuAction(QAction*)));
MenuAction(QAction*)定义如下:
//菜单栏动作信号
void MainWindow::MenuAction(QAction* txt)
{
if(txt->text() == "Test1")
{
QMessageBox::information(this,"提示","这是一个消息框");
}
}
此时点击Test1,即可单出提示框。
3.在菜单栏中加入控件
以声音控件为例:
QWidgetAction *pVoice = new QWidgetAction(this);
QWidget *pVoiceWdt = new QWidget(this);
QSlider *pSlider = new QSlider(Qt::Horizontal);
QHBoxLayout *layout = new QHBoxLayout(pVoiceWdt);
layout->addWidget(pSlider);
pVoiceWdt->setLayout(layout);
pVoice->setDefaultWidget(pVoiceWdt);
pMenu->addAction(pVoice);
示例如下: