您的位置:首页 > 编程语言 > Qt开发

qt右键菜单

2015-08-17 00:00 337 查看
摘要: qt右键菜单的简单介绍

QWidget中有以下两个与右键菜单有关的函数:

Qt::ContextMenuPolicy contextMenuPolicy() const

void setContextMenuPolicy(Qt::ContextMenuPolicy policy)

其中,Qt::ContextMenuPolicy枚举类型包括:Qt::DefaultContextMenu, Qt::NoContextMenu, Qt::PreventContextMenu, Qt::ActionsContextMenu, and Qt::CustomContextMenu。

1) Qt::DefaultContextMenu

默认方式,利用contextMenuEvent()来处理右键菜单事件,重写contextMenuEvent即可

2) Qt::NoContextMenu

没有右键菜单,将右键菜单事件交由其父窗口处理

3) Qt::PreventContextMenu

没有右键菜单,也不会将右键菜单事件交由其父窗口处理,所有的鼠标右键事件都由自身的QWidget::mousePressEvent()和QWidget::mouseReleaseEvent()处理

4) Qt::ActionsContextMenu

将窗口Action列表中的所有Action作为右键菜单的内容显示出来。使用Qt::ActionsContextMenu比较简洁,但这种方式不适用根据光标点击的位置弹出不同内容的右键菜单,缺少灵活性。

5) Qt::CustomContextMenu

自定义右键菜单,它仅仅发出QWidget::customContextMenuRequested()信号,需要自己写一个右键菜单处理的槽函数,利用信号槽机制来处理右键菜单,方式较灵活。

注意:QWidget::customContextMenuRequested()信号发出的条件是,用户鼠标右击请求contextMenu,同时被点击的窗口其contextMenuPolicy又是Qt::CustomContextMenu
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qt右键菜单