QML鼠标右键菜单

原理非常简单,先写个Menu,通过MouseArea来填充需要右键菜单的区域。然后在onClicked信号中,让Menux、y等于当前鼠标的x、y,最后用调用Menu的open()方法将菜单在该位置显示出来。

import QtQuick
import QtQuick.Controls.Material
import QtQuick.Controls

Window {
    width: 640
    height: 480
    visible: true
    title: qsTr("右键菜单演示")

    Menu
    {
        id: rightMenu

        MenuItem
        {
            text: "复制"
            icon.source: "imgs/复制.png"
        }
        MenuItem
        {
            text: "粘贴"
            icon.source: "imgs/粘贴.png"
        }
        MenuItem
        {
            text: "剪贴"
            icon.source: "imgs/剪贴.png"
        }
    }

    MouseArea
    {
        anchors.fill: parent
        acceptedButtons: Qt.RightButton //接收鼠标右键
        
        onClicked:
        {
            rightMenu.x = mouseX
            rightMenu.y = mouseY
            rightMenu.open()
        }
    }
}

运行效果截图如下:

 

这里有2点需要注意一下,1个是接收鼠标右键:acceptedButtons: Qt.RightButton 。还有个是获取当前鼠标的位置x、y。

获取鼠标的位置有2种写法,我上面贴出的是简单一点的写法,还有一种稍微有一点不同,但是2种写法都能正常运行,以我目前的菜鸟水准也看出这2者之间的区别在哪。

第2中写法代码如下:

MouseArea
    {
        anchors.fill: parent
        acceptedButtons: Qt.RightButton //接收鼠标右键

        onClicked: (mouse)=>
        {
            rightMenu.x = mouse.x
            rightMenu.y = mouse.y
            rightMenu.open()
        }
    }

相关推荐

  1. Sublime text 添加到鼠标菜单,脚本实现

    2024-07-21 14:32:05       54 阅读
  2. UI界面程序鼠标弹出菜单的一些事

    2024-07-21 14:32:05       57 阅读
  3. 菜单注册表位置

    2024-07-21 14:32:05       20 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-21 14:32:05       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-21 14:32:05       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-21 14:32:05       45 阅读
  4. Python语言-面向对象

    2024-07-21 14:32:05       55 阅读

热门阅读

  1. 设计App的后端接口分类以及环境依赖包详情

    2024-07-21 14:32:05       17 阅读
  2. MySQL_约束与进阶查询

    2024-07-21 14:32:05       17 阅读
  3. 代付是什么意思呢

    2024-07-21 14:32:05       15 阅读
  4. 【Node.js】调试 Node.js 程序

    2024-07-21 14:32:05       13 阅读
  5. 星火模型大体验简单实现一个LLM Chat平台

    2024-07-21 14:32:05       20 阅读
  6. python 图片类型转为 jpg

    2024-07-21 14:32:05       17 阅读
  7. 保研英语打卡_Day2 专业类

    2024-07-21 14:32:05       16 阅读