Qt创建右键菜单的方法
2013-08-20 17:29
465 查看
编写Qt界面程序的时候,经常会用到右键菜单(ContextMenu),目前自己知道的创建右键菜单的方法有两种,
方法1:在mousePressEvent事件中判断鼠标按下的是否是右键,进而调用创建右键菜单的函数。
方法2:重新实现QWidget::contextMenuEvent()函数,
方法1:在mousePressEvent事件中判断鼠标按下的是否是右键,进而调用创建右键菜单的函数。
void Dialog::mousePressEvent(QMouseEvent *event)//鼠标按下事件 { if(event->button() == Qt::RightButton) { createContextMenu(); } } void Dialog::createContextMenu()//创建右键菜单函数 { QCursor cur=this->cursor(); QMenu *contextMenu = new QMenu(this); QAction *cutAction = new QAction(tr("&New"), this); cutAction->setShortcut(QKeySequence::New); QAction *copyAction = new QAction(tr("&Copy"), this); copyAction->setShortcut(QKeySequence::Copy); QAction *pasteAction = new QAction(tr("&Paste"), this); pasteAction->setShortcut(QKeySequence::Paste); contextMenu->addAction(cutAction); contextMenu->addAction(copyAction); contextMenu->addAction(pasteAction); contextMenu->exec(cur.pos()); }
方法2:重新实现QWidget::contextMenuEvent()函数,
void Dialog::contextMenuEvent(QContextMenuEvent *event)//重写右键菜单 { QCursor cur=this->cursor(); QMenu *contextMenu = new QMenu(this); QAction *cutAction = new QAction(tr("&New"), this); cutAction->setShortcut(QKeySequence::New); QAction *copyAction = new QAction(tr("&Copy"), this); copyAction->setShortcut(QKeySequence::Copy); QAction *pasteAction = new QAction(tr("&Paste"), this); pasteAction->setShortcut(QKeySequence::Paste); contextMenu->addAction(cutAction); contextMenu->addAction(copyAction); contextMenu->addAction(pasteAction); //setContextMenuPolicy(Qt::ActionsContextMenu); contextMenu->exec(cur.pos()); }
相关文章推荐
- QT鼠标右键菜单的创建方法与示例
- QT 创建鼠标右键菜单
- QT 创建鼠标右键菜单
- [QT]创建鼠标右键菜单
- 转载:VS2012开启右键菜单创建单元测试选项(Create Unit Tests) 的方法
- HTML5中原生的右键菜单创建方法
- Qt添加右键菜单的方法
- VS2012开启右键菜单创建单元测试选项(Create Unit Tests) 的方法
- QT 创建托盘图标和右键菜单
- QT 创建托盘图标和右键菜单
- QT右键菜单、右键下拉菜单、各控件响应右键菜单方法简介 【百度空间】
- HTML5里原生的右键菜单创建方法
- QT右键菜单的创建及相关问题解决
- QT 创建鼠标右键菜单
- Qt实现右键菜单的五种方法!(以QListWidget为例)
- 晨曦之光 QT 创建鼠标右键菜单
- QT右键菜单、右键下拉菜单、各控件响应右键菜单方法简介(转)
- MFC创建右键弹出菜单的方法
- QT 创建鼠标右键菜单
- 【Qt开发】Qt gui添加右键菜单事件