1.重点
既然要给控件添加右键菜单,那如何让控件知道我们点击了它呢?
首先需要给控件设置上下文菜单策略 setContextMenuPolicy(Qt::CustomContextMenu) ;设置该策略后当我们右键点击控件时qt会发送一个信号 void QWidget::customContextMenuRequested(const QPoint &pos) ,其中参数pos用来传递右键点击时的鼠标的坐标,这个坐标一般是相对于控件左上角而言的;最后给这个信号设置相应的槽函数,在槽函数中将菜单展示出来就行了。
2.步骤概览
//初始化动作
//初始化菜单
//动作添加到菜单
//给动作设置信号槽
//给控件设置上下文菜单策略
//给信号 void QWidget::customContextMenuRequested(const QPoint &pos)设置相应的槽函数
3.代码实现
在例子中我给PushBUtton添加了一个菜单,菜单中加入了两个动作,分别给每个动作设置信号槽;同样给TextLabel添加一个菜单,菜单中加入了两个动作,分别给每个动作设置信号槽。
3.1界面
3.2详细代码
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include<QAction>
#i