
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类提供了抽象的用户界面action,这些action可以被放置在窗口部件中。
应用程序可以通过菜单,工具栏按钮以及键盘快捷键来调用通用的命令。由于用户期望每个命令都能以相同的方式执行,而不管命令所使用的用户界面,
这个时候使用action来表示这些命令就显得十分有用。
Actions可以被添加到菜单和工具栏中,并且可以自动保持在菜单和工具栏中的同步。例如,在一个字处理软件中,如果用户在工具栏中按下了Bold按钮,那么菜单中的Bold选项就会自动被选中。
Actions可以作为独立的对象被创建,但是我们也可以在构建菜单的时候创建它们;QMenu类包含了非常简便的方法用于创建适合用作菜单项的actions。
QAction可以包括一个图标,菜单文本,快捷键,状态文本,"What`s This"文本以及一个tooltip。这些内容的绝大部分都可以在构造函数中设置。也可以通过setIcon(),setIconText(),setShortCut(),setStatusTip(),setWhatsThis和SetToolTip()函数分别设置。对于菜单项,我们还可以通过
setFont()单独为它们设置font。
可以通过QWidget::addAction()或者是QGraphicsWidget::addAction()函数将Actions添加到窗口部件上。注意,只有将Actions添加到窗口部件上之后,我们才可以使用这些actions;当actions的快捷键是全局的时候,我们也必须先将actions添加到窗口部件上。
一旦QAction被创建了,那么就必须将它添加到相关的菜单和工具栏上,然后将它们链接到实现相应action功能的槽函数上。例如:
openAct = new QAction(QIcon(":/images/open.png"), tr("&Open..."), this)
openAct->setShortcuts(QKeySequence::Open)
openAct->setStatusTip(tr("Open an existing file"))
connect(openAct, SIGNAL(triggered()), this, SLOT(open()))
fileMenu->addAction(openAct)
fileToolBar->addAction(openAct)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)