在QWidget 窗口上弹出右键菜单
来源:互联网 发布:java不兼容的类型 编辑:程序博客网 时间:2024/04/30 04:02
Title :
- QWidget
- 窗口上弹出右键菜单的两个方法
Solution 1 :
给一个 QWidget 添加 QActions,设置 QWidget 的 contextMenuPolicy 属性为 Qt::ActionsContextMenu 值,使得窗口菜单以这些添加的 QActions 为菜单项组成一个右键菜单。
1: MyWidget::MyWidget(QWidget *parent)
2: : QWidget(parent)
3: {
4: setWindowTitle(tr("Context Menu Show 1"));5: //为窗口添加QActions6: addAction(new QAction(tr("&Open"), this));7: addAction(new QAction(QIcon(":/images/mark.png"), tr("&Mark"), this));8: addAction(new QAction(tr("&Quit"), this));9: //设置contextMenuPolicy属性值为 '以Actions为弹出菜单的菜单项组成菜单'10: setContextMenuPolicy(Qt::ActionsContextMenu);
11: }
效果:
Solution 2 :
重写 QWidget 的被保护的虚函数 void QWidget::contextMenuEvent ( QContextMenuEvent * event ) [virtual protected],设置 QWidget 的 contextMenuPolicy 属性为 Qt::DefaultContextMenu 值,其实默认就是这个值,不用显示设置。
1: MyWidget::MyWidget(QWidget *parent)
2: : QWidget(parent)
3: {
4: setWindowTitle(tr("Context Menu Show 2"));5: setContextMenuPolicy(Qt::DefaultContextMenu); //其实不用设置,默认就是这个值6: }
7:
8:
9: void MyWidget::contextMenuEvent(QContextMenuEvent *event)10: {
11: QMenu *menu = new QMenu(this);12: menu->addAction(new QAction(tr("&Open"), menu));13: menu->addAction(new QAction(QIcon(":/images/mark.png"), tr("&Mark"), menu));14: menu->addAction(new QAction(tr("&Quit"), menu));15: menu->move(cursor().pos()); //让菜单显示的位置在鼠标的坐标上16: menu->show();
17: }
效果:
上面直接是在 contextMenuEvent 函数体里面 new 了个菜单和一些菜单项,这是为了演示。实际在写程序的过程中,我们往往会把这些 QAction 和 QMenu 声明为私有的成员变量,在构造 Widget 的时候,或者第一次调用 contextMenuEvent 时初始化它们,把它们的某些信号(signal)与其它组件的某些槽(slot)连接以处理一些事件,比如说单击上面演示的Open项目会弹出一个对话框,单击Quit会退出程序等等。
0 0
- 在QWidget 窗口上弹出右键菜单
- 如何在 QWidget 窗口上弹出右键菜单
- 窗口响应右键弹出菜单
- DataGrid上右键弹出菜单
- VC中实现在指定控件上弹出右键菜单
- MFC: 右键弹出菜单-->选取菜单弹出窗口
- Qt QWidget右键菜单实例
- Qt QWidget右键菜单实例
- 在WinCE下长按屏幕弹出右键菜单
- 在DevExpress的treelist控件节点上实现右键弹出菜单项
- mfc在窗口中添加右键菜单
- java右键弹出菜单
- 动态弹出右键菜单
- 对话框弹出右键菜单
- 右键弹出菜单
- 控件右键弹出菜单
- 右键弹出菜单
- 右键弹出菜单
- LeetCode:String to Integer (atoi)
- Activity
- 0-时间复杂度&空间复杂度的计算
- BZOJ 3110 [Zjoi2013]K大数查询
- Latex 入门
- 在QWidget 窗口上弹出右键菜单
- JAVA之内部类--成员内部类- 静态内部类- 方法内部类- 匿名内部类
- maven assembly plugin
- LLDB命令详解(自用备忘)
- JSP中JQuery UI Dialog弹窗使用具体操作
- kalman 滤波 演示与opencv代码
- log4j:WARN Please initialize the log4j system properly
- Jquery源码解析-设计理念
- Mob ShareSDK的使用