QML笔记——MouseArea的覆盖区域
问题摘要:
初学QML,今天发现一个奇怪的现象,调用MouseArea的位置不同,结果不同。
1、一个简单的qml示例
Rectangle {
id: root
width: 320
height: 200
Button{
anchors.centerIn:parent;
text:"Quit";
style:ButtonStyle{
background:Rectangle{
implicitWidth:170;
implicitHeight:50;
border.width:control.pressed ? 5 : 1;
border.color:(control.hovered||control.pressed) ? "green" :"red";
}
}
onClicked:{
console.log("Quit");
//Qt.quit()
}
}
}
正常效果如下:
2、 添加MouseArea对象
Rectangle {
id: root
width: 320
height: 200
Button{
anchors.centerIn:parent;
text:"Quit";
style:ButtonStyle{
background:Rectangle{
implicitWidth:170;
implicitHeight:50;
border.width:control.pressed ? 5 : 1;
border.color:(control.hovered||control.pressed) ? "green" :"red";
}
}
onClicked:{
console.log("Quit");
//Qt.quit()
}
} MouseArea{
anchors.fill:parent;
acceptedButtons: Qt.LeftButton | Qt.RightButton
onDoubleClicked:{
console.log("DoubleButton");
}
onClicked:{
if(mouse.button == Qt.LeftButton){
console.log("LeftButton");
}else if(mouse.button == Qt.RightButton){
console.log("RightButton");
Qt.quit();
}
}
}
}
左键点击Quit 按钮没有反应:按钮宽度没有变化,不会输出console.log("Quit"); 而输出console.log("LeftButton")。
3、调换MouseArea位置:
Rectangle {
id: root
width: 320
height: 200 MouseArea{
anchors.fill:parent;
acceptedButtons: Qt.LeftButton | Qt.RightButton
onDoubleClicked:{
console.log("DoubleButton");
}
onClicked:{
if(mouse.button == Qt.LeftButton){
console.log("LeftButton");
}else if(mouse.button == Qt.RightButton){
console.log("RightButton");
Qt.quit();
}
}
} Button{
anchors.centerIn:parent;
text:"Quit";
style:ButtonStyle{
background:Rectangle{
implicitWidth:170;
implicitHeight:50;
border.width:control.pressed ? 5 : 1;
border.color:(control.hovered||control.pressed) ? "green" :"red";
}
}
onClicked:{
console.log("Quit");
//Qt.quit()
}
}
}
Quit按钮可以正常反应:
总结:
MouseArea的调用,有先后优先级,后续的设置会覆盖前面的设置。局部的调用没有被触发。
QML笔记——MouseArea的覆盖区域的更多相关文章
- QML学习笔记(八)— QML实现列表侧滑覆盖按钮
QML实现列表右边滑动删除按钮,并覆盖原有的操作按钮,点击可实现删除当前项 本文链接:QML实现列表侧滑覆盖按钮 作者:狐狸家的鱼 GitHub:八至 列表实现在另一篇博客已经提及,列表可选中.拖拽. ...
- 【转载】Java系列笔记(3) - Java 内存区域和GC机制
Java系列笔记(3) - Java 内存区域和GC机制 转载:原文地址http://www.cnblogs.com/zhguang/p/3257367.html 目录 Java垃圾回收概况 Java ...
- Java系列笔记(3) - Java 内存区域和GC机制
目录 Java垃圾回收概况 Java内存区域 Java对象的访问方式 Java内存分配机制 Java GC机制 垃圾收集器 Java垃圾回收概况 Java GC(Garbage Collection, ...
- QML中MouseArea元素的介绍
原文:http://www.thisisqt.com/?action-viewnews-itemid-22 MouseArea元素的一个很典型的用法是和一个可视的item一起用,处理这个item的鼠标 ...
- 《深入java虚拟机》读书笔记之Java内存区域
前言 该读书笔记用于记录在学习<深入理解Java虚拟机--JVM高级特性与最佳实践>一书中的一些重要知识点,对其中的部分内容进行归纳,主要是方便之后进行复习. 运行时数据区域 Java虚拟 ...
- 《深入理解Java虚拟机》学习笔记1-内存数据区域
1.程序计数器 作用-较小的内存空间,用于存储当前线程所执行的字节码的行号 特性-每条线程有需要一个独立的程序计数器,各线程间互不影响,独立存储,称为"线程私有"的内存 ...
- ASP.Net MVC开发基础学习笔记:五、区域、模板页与WebAPI初步
一.区域—麻雀虽小,五脏俱全的迷你MVC项目 1.1 Area的兴起 为了方便大规模网站中的管理大量文件,在ASP.NET MVC 2.0版本中引入了一个新概念—区域(Area). 在项目上右击创建新 ...
- Opencv2系列学习笔记10(提取连通区域轮廓)
连通区域指的是二值图像中相连像素组成的形状.而内.外轮廓的概念及opencv1中如何提取二值图像的轮廓见我的这篇博客:http://blog.csdn.net/lu597203933/article/ ...
- Opencv2系列学习笔记10(提取连通区域轮廓) 另一个
http://blog.csdn.net/lu597203933/article/details/17362457 连通区域指的是二值图像中相连像素组成的形状.而内.外轮廓的概念及opencv1中如何 ...
- Jenkins日常运维笔记-重启数据覆盖问题、迁移、基于java代码发版(maven构建)
之前在公司机房部署了一套jenkins环境,现需要迁移至IDC机房服务器上,迁移过程中记录了一些细节:1)jenkins默认的主目录放在当前用户家目录路径下的.jenkins目录中.如jenkins使 ...
随机推荐
- 一文读懂 Kubernetes 存储设计
在 Docker 的设计中,容器内的文件是临时存放的,并且随着容器的删除,容器内部的数据也会一同被清空.不过,我们可以通过在 docker run 启动容器时,使用 --volume/-v 参数来指定 ...
- SpringBoot源码学习3——SpringBoot启动流程
系列文章目录和关于我 一丶前言 在 <SpringBoot源码学习1--SpringBoot自动装配源码解析+Spring如何处理配置类的>中我们学习了SpringBoot自动装配如何实现 ...
- angular---嵌套路由
- 异常处理的第二种方式-Throwable类中3个异常处理的方式
异常处理的第二种方式 如果异常出现的话,会立刻终止程序,所以我们得处理异常: 1.该方法不处理,而是声明抛出,由该方法的调用者来处理(throws). 2.在方法中使用try-catch的语句块来处理 ...
- P5192 Zoj3229 Shoot the Bullet|东方文花帖|【模板】有源汇上下界最大流
我们要做这道题首先先来学习: 无源汇上下界可行流 什么是无源汇上下界可行流 在一张图中,没有s和t,每条边有流量下界和流量上界,流量在这个区间内,求是否存在一种方案在满足流量平衡的情况下,使所有边满足 ...
- Typora下载与安装 0.9.75版本
Typora下载与安装 效果图 一.简介 一款 Markdown 编辑器和阅读器 (0.9.75 版本 不需购买) 二.下载 下载地址:Typora 三.安装 1.下载文件后双击安装 2. 选择存放的 ...
- 用ChatGPT来了解ChatGPT
用ChatGPT来了解ChatGPT 之前学习一个新技术, 想着要搞清楚这6个问题(来自陈皓介绍的学习方法): 1.这个技术出现的背景, 初衷, 要达到什么样的目标或是要解决什么样的问题. 2.这个技 ...
- 【KAWAKO】docker暴力上手
目录 从docker hub拉取镜像 根据镜像创建容器,同时把本地目录挂载到容器 进入容器 停止容器 删除停止的容器 从docker hub拉取镜像 进入docker hub,搜索自己喜欢的镜像. 复 ...
- 都在用 AI 生成美少女,而我却。。。
最近 AI 画画特别的火,你能从网上看到非常多好看的图片,于是我就开始了我的安装之旅,我看到的图是这样的. 这样的. 还有这样的. 然后我就开始了我的 AI 安装生成计划. 安装环境 首先我们需要安装 ...
- 3D场景建模零代码平台
3D场景建模软件(零基础.零代码.**),是指用来制作场景的软件,分为2D建模和3D建模,二者使用的技术及原理不同. 2D软件:它是用3维几何图形绘制出三维图形的软件,其主要功能是利用软件中已经画好的 ...