QMenuBar *mBar = menuBar()
2、添加菜单
QMenu * menu = mBar->addMenu("文件")
3、添加菜单项
QAction * action = menu->addAction("新建")
4、给QAction创建点击事件
connect(action ,&QAction::triggered ,this ,[=](){
//里面写点击后执行的函数就行
})
5、设置QAction不可用
QMenu *pMenu = new QMenu(this)
QAction *pTest1 = new QAction(QIcon("copy.ico"),"复制", this)
QAction *pTest2 = new QAction("删除", this)
QAction *pTest3 = new QAction("标记", this)
QAction *pTest4 = new QAction("取消标记", this)
//把QAction对象添加到菜单上
pMenu->addAction(pTest1)
pMenu->addAction(pTest2)
pMenu->addAction(pTest3)
pMenu->addAction(pTest4)
//添加分隔线
//pMenu->addSeparator()
//设置点击后发送的数据
// pTest1->setData(1)
//连接鼠标右键点击信号
connect(pTest1, &QAction::triggered, this, &sub::ClickCopy)
connect(pTest2, &QAction::triggered, this, &sub::ClickDel)
connect(pTest3, &QAction::triggered, this, &sub::Clicktink)
connect(pTest4, &QAction::triggered, this, &sub::ClickDeltink)
//在鼠标右键点击的地方显示菜单
pMenu->exec(cursor().pos())
//释放内存,若此处不手动释放,则必须等到程序结束时才都能释放
QList list = pMenu->actions()
foreach (QAction* pAction, list)
delete pAction
delete pMenu
QAction是继承QObject的一个类。例如QActionGroup就是QAction的一个继承类。
QAction类抽象出一个用户UI动作(action),该动作可出现在菜单和工具栏上。
向用户提供一个action时,可以调用addTo()添加到菜单或者工具栏上。例如:
QPopupMenu* popup = new QPopupMenu
QAction* yourAction= new QAction
yourAction->setText( "YourAction" )
yourAction->addTo( popup )
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)