QT之QML(简单示例)

需求一:点击按钮弹出菜单,并且自定义菜单弹出位置。

mouse.xmouse.y 获取的是相对于 MouseArea(在这个例子中是 Button)左上角的局部坐标。如果你想要在鼠标点击位置显示 Menu,你需要将这个局部坐标转换为相对于应用程序窗口或屏幕的全局坐标。

import QtQuick 2.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.15Window {width: 640height: 480visible: truetitle: qsTr("Demo Cloud Music Player")//从全局对象拿到的点是正确的MouseArea{anchors.fill: parenthoverEnabled: trueonClicked: {console.log("mouse = ",mouseX,mouseY,mouse )myMenu.popup(mouseX,mouseY)}}// 创建一个菜单并添加菜单项Menu {id: myMenuMenuItem {text: "Option 1"onTriggered: console.log("Option 1 selected")}MenuItem {text: "Option 2"onTriggered: console.log("Option 2 selected")}MenuItem {text: "Option 3"onTriggered: console.log("Option 3 selected")}}Button{id:myButtonwidth: 100height: 100x:100// 将菜单与按钮关联// menu: myMenubackground:Rectangle{width: 25height: 25color: "red"border.color: "blue"}//方式一:从MouseArea获取到点的位置发现不正确MouseArea{anchors.fill: parenthoverEnabled: trueonClicked: {var globalPos = myButton.mapToGlobal(mouse.x, mouse.y)console.log("MouseArea = ",mouseX,mouseY)console.log("mouse对象 = ",mouse.x,mouse.y,mouse )console.log("globalPos对象 = ",globalPos.x,globalPos.y,globalPos )//方式二//mouse.x获取到的值是对于当前控件来说,需要加上偏移量myMenu.popup(mouse.x+myButton.x, mouse.y)console.log("myMenu对象 = ",myMenu.x,myMenu.y,myMenu )}}//正确方式一:// onClicked: {//     console.log("clicked")//     // 获取按钮的全局坐标这俄格应该是获取到的是控件坐标//      // var globalPos = myButton.mapToItem(null, 0, myButton.height)//     // 在按钮下方显示菜单,先让他显示出来获取到坐标在显示一遍进行实现//     myMenu.popup() // 默认就会在鼠标的当前位置打开。。。//     console.log("x = ",myMenu.x,"y = " ,myMenu.y)//     var x = myMenu.x +10//     var y = myMenu.y +10//     myMenu.popup(x,y)// }Keys.onLeftPressed: {console.log("left")}Keys.onRightPressed:{console.log("right")}}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/899850.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何编写单元测试

一、前言知识 1.开发过程 需求分析->设计->开发->测试->上线 2.测试种类 单元测试(测试模块编码)、黑盒测试(测试功能是否满足需求)、白盒测试(测试程序内部的逻辑结构)、回归测试(提出的缺陷进行二次验证)、集成测试(测试主要的业务功能及模块间的整合性)、系…

LeetCode 解题思路 30(Hot 100)

解题思路: 递归参数: 生成括号的对数 n、结果集 result、当前路径 path、左括号数 open、右括号数 close。递归过程: 当当前路径 path 的长度等于 n * 2 时,说明已经生成有效括号,加入结果集。若左括号数小于 n&…

【Golang】Windows系统键鼠空闲监测练习

在本文中,我们将练习如何使用Golang编写一个简单的Windows系统空闲时间监测工具。该工具能够检测系统的空闲时间,并在达到一定阈值时计数。 功能概述 监控鼠标和键盘的空闲事件,每空闲超过50s,触发次数加一。 该工具具有以下功…

关于React Redux

官网:👉详情一 👉详情二 👉关于redux 使用原因:👉详情 /** 2-1、随着javascript单页应用程序的发展,需要在代码中管理更多的状态(包括服务器响应数据、缓存数据、本地创建还未发送…

MySQL和Oracle批量插入SQL差异详解

文章目录 MySQL和Oracle批量插入SQL差异详解1. 基本批量插入语法1.1 MySQL批量插入1.2 Oracle批量插入 2. 带序列的批量插入2.1 MySQL带自增ID的批量插入2.2 Oracle带序列的批量插入 3. 条件批量插入3.1 MySQL条件批量插入3.2 Oracle条件批量插入 MySQL和Oracle批量插入SQL差异…

43页可编辑PPT | 大数据管理中心设计规划方案大数据中心组织架构大数据组织管理

这份文档是一份关于大数据管理中心规划设计方案的详细报告,涵盖了背景与需求分析、整体规划方案、关键能力实现方案以及实施方案等内容。报告强调大数据在城市治理中的重要性,提出通过构建统一的大数据平台,整合城市各部门数据资源&#xff0…

Python-八股总结

目录 1 python 垃圾处理机制2 yield3 python 多继承,两个父类有同名方法怎么办?4 python 多线程/多进程/协程4.1 多线程与GIL全局解释器锁4.2 多进程4.3 协程 5 乐观锁/悲观锁6 基本数据结构**1. 列表(List)****2. 元组&#xff0…

HTML 标签类型全面介绍

HTML 标签类型全面介绍 HTML(HyperText Markup Language)是构建 Web 页面结构的基础语言。HTML 由不同类型的标签组成,每种标签都有特定的用途。本文将全面介绍 HTML 标签的分类及其用法。 1. HTML 标签概述 HTML 标签通常成对出现&#xf…

vscode中的【粘滞滚动】的基本概念和作用,关闭了以后如何开启

1、粘滞滚动的基本概念和作用 ‌VSCode中的“粘滞”功能主要是指编辑器在滚动时的一种特殊效果,使得编辑器在滚动到某个位置时会“粘”在那里,而不是平滑滚动到底部或顶部。‌ 粘滞滚动的基本概念和作用 粘滞滚动功能可以让用户在滚动时更直观地看到当前…

【商城实战(101)】电商未来已来:新技术引领商城发展新航向

【商城实战】专栏重磅来袭!这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建,运用 uniapp、Element Plus、SpringBoot 搭建商城框架,到用户、商品、订单等核心模块开发,再到性能优化、安全加固、多端适配,乃至运营推广策略,102 章内容层层递进。无论是想…

深度学习Note.5(机器学习.6)

1.Runner类 一个任务应用机器学习方法流程: 数据集构建 模型构建 损失函数定义 优化器 模型训练 模型评价 模型预测 所以根据以上,我们把机器学习模型基本要素封装成一个Runner类(加上模型保存、模型加载等功能。) Runne…

linux服务器专题1------redis的安装及简单配置

在 linux上安装 Redis 可以按照以下步骤进行(此处用Ubuntu 服务器进行讲解): 步骤 1: 更新系统包 打开终端并运行以下命令以确保你的系统是最新的: sudo apt update sudo apt upgrade步骤 2: 安装 Redis 使用 apt 包管理器安装 Redis: s…

面试问题总结:qt工程师/c++工程师

C 语言相关问题答案 面试问题总结:qt工程师/c工程师 C 语言相关问题答案 目录基础语法与特性内存管理预处理与编译 C 相关问题答案面向对象编程模板与泛型编程STL 标准模板库 Qt 相关问题答案Qt 基础与信号槽机制Qt 界面设计与布局管理Qt 多线程与并发编程 目录 基础…

实现实时数据推送:SpringBoot中SSE接口的两种方法

🌟 前言 欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍 &#x…

LXC 导入多Linux系统

前提要求 ubuntu下安装lxd 参考Rockylinux下安装lxd 参考LXC 源替换参考LXC 容器端口发布参考LXC webui 管理<

ES的文档更新机制

想获取更多高质量的Java技术文章&#xff1f;欢迎访问Java技术小馆官网&#xff0c;持续更新优质内容&#xff0c;助力技术成长 Java技术小馆官网https://www.yuque.com/jtostring ES的文档更新机制 在现代应用中&#xff0c;数据的动态性越来越强&#xff0c;我们不仅需要快…

trae.ai 编辑器:前端开发者的智能效率革命

一、为什么我们需要更智能的编辑器&#xff1f; 作为从业5年的前端开发者&#xff0c;我使用过从Sublime到VSCode的各种编辑器。但随着现代前端技术的复杂度爆炸式增长&#xff08;想想一个React组件可能涉及JSX、CSS-in-JS、TypeScript和GraphQL&#xff09;&#xff0c;传统…

MySQL篇(一):慢查询定位及索引、B树相关知识详解

MySQL篇&#xff08;一&#xff09;&#xff1a;慢查询定位及索引、B树相关知识详解 MySQL篇&#xff08;一&#xff09;&#xff1a;慢查询定位及索引、B树相关知识详解一、MySQL中慢查询的定位&#xff08;一&#xff09;慢查询日志的开启&#xff08;二&#xff09;慢查询日…

uniapp APP端在线升级(简版)

设计思路&#xff1a; 1.版本比较&#xff1a;应用程序检查其当前版本与远程服务器上可用的最新版本 2. 更新状态指示&#xff1a;如果应用程序是不是最新的版本&#xff0c;则页面提示下载最新版本。 3.下载启动&#xff1a;通过plus.downloader.createDownload()启动新应用…

基于javaweb的SpringBoot教务课程管理设计与实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…