Qt532.【转】Qt创建鼠标右键菜单
ZC:可以通过 设置 (QWebView*)->setContextMenuPolicy(NoContextMenu); 来关闭 QWebView的默认右键菜单
Qt创建鼠标右键菜单_疯华正茂_新浪博客.html(http://blog.sina.com.cn/s/blog_63d0ff2d0102vetz.html)
网页内容保存:
第一步:
QWidget及其子类都可有右键菜单,首先设置QWidget与右键菜单有关的函数setContextMenuPolicy()。
如设置QTreeView的相关函数为:this->ui.treeView->setContextMenuPolicy(Qt::CustomContextMenu);
Qt::ContextMenuPolicy枚举类型包括:Qt::DefaultContextMenu, Qt::NoContextMenu, Qt::PreventContextMenu, Qt::ActionsContextMenu, and Qt::CustomContextMenu,其中如果设置该类型为Qt::CustomContextMenu,则点击鼠标右键会发射信号customContextMenuRequested(const QPoint)。
第二步:
在头文件中声明右键关联的槽函数ShowMouseRightButton(const QPoint); 并且设置信号customContextMenuRequested(const QPoint)与该槽函数的关联,例如:connect(ui.treeView, SIGNAL(customContextMenuRequested(const QPoint)), this, SLOT(ShowMouseRightButton(const QPoint)));
第三步:
实现对应的右键关联的槽函数,如ShowMouseRightButton(const QPoint);
void ShowMouseRightButton(const QPoint& pos)
{
QMenu *qMenu = NULL;
if (qMenu)
{
delete qMenu;
qMenu = NULL;
}
qMenu = new QMenu(ui.treeView);
QAction* closePaneAction = new QAction("&Close",this);
connect(closePaneAction, SIGNAL(triggered()), this, SLOT(close()));
QAction* addTreeItemAction = new QAction("&AddItem", this);
connect(addTreeItemAction, SIGNAL(triggered()), this, SLOT(AddTreeItem()));
qMenu->addAction(closePaneAction);
qMenu->addAction(addTreeItemAction);
qMenu->exec(QCursor::pos()); //在鼠标点击的位置显示鼠标右键菜单
}
Z