QML中增大MouseArea的控制区域_qml中如何改变mousearea的区域-程序员宅基地

技术标签: qml  QT  Linux 内核 驱动  

QML中增大MouseArea的控制区域

通常情况下,Mousearea的范围和可视组件的范围是一样的,但是有的时候可视组件太小,不好点,这时就希望能把MouseArea的范围变得大一点,在鼠标靠近可视组件的时候也能选中。方法很简单,不要使用anchor.fill=parent来设置Mousearea的范围,而使用anchors.centerIn: parent 来和可视组件中心对齐,然后再把Mousearea的范围扩大一点就可以了.

Rectangle {
    id: root
    width: 10
    height: width
    radius: width / 2
    border.width:  1
    border.color: "green"
    signal posChange(int xOffset, int yOffset)
    signal clicked(real x, real y)
    signal doubleClicked(real x, real y)
    onPosChange: {
        x += xOffset
        y += yOffset
    }

    MouseArea{
        //anchors.fill: parent

        anchors.centerIn: parent
        width: parent.width + 10
        height: parent.height + 10
        hoverEnabled: true
        property int lastX: 0   // mouseX 是当前光标与root中心点的偏移量,在拖动的过程中要保持光标和root中心的偏移量不变
        property int lastY: 0

        onEntered: {
            parent.border.color = "red"
        }
        onExited: {
            parent.border.color = "blue"
        }

        onPressedChanged: {
            if (containsPress) {
                lastX = mouseX;
                lastY = mouseY;
                console.log("onPressedChange")
            }
        }
        onPositionChanged: {
            if (pressed) {
                posChange(mouseX - lastX, mouseY - lastY)

                //console.log("onPositionChanged" + mouseX + "," + mouseY)
            }
        }
        onClicked: {
            root.clicked(mouseX, mouseY)
        }
        onDoubleClicked: {
            root.doubleClicked(mouseX, mouseY)
        }
    }
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/abeldeng/article/details/109093447

智能推荐

魅族4usb计算机连接,魅族MX4手机如何连接电脑-程序员宅基地

文章浏览阅读442次。魅族MX4手机如何连接电脑呢,下面学习啦小编以图文的方式来给大家介绍一下魅族MX4连接电脑的方法,有需要参考的朋友可看看。魅族MX4手机连接电脑方法打开手机里的设置——关于手机——存储。2存储——连接方式——媒体设备MTP模式、相机PTP模式、只充电、内置光盘等。魅族mx4连接方式主要有MTP和PTP模式,以及只充电模式。MTP是可以通过电脑传输文件,而PTP可以通过电脑传输照片,充电模式加速充电..._flyme 4 usb

安卓手机状态栏显示秒_免Root让安卓状态栏时间精确到秒-程序员宅基地

文章浏览阅读6.1k次。免Root让安卓状态栏时间精确到秒2020-01-09 16:54:4422点赞54收藏13评论前言使用手机抢购的时候,精确到秒是非常必需的。可惜谷歌原版安卓系统,以及一些国产UI安卓系统都没有精确到秒显示的选项。百度找到的不少教程都是需要Root的,可是安卓系统Root后,支付软件的指纹支付、人脸识别支付就不能正常工作。寻找一番后,终于找到了比较完美的方法,免root让安卓状态栏时间精确到秒。教..._google的通知栏时间显示到秒

linux kobject kobject_type kset_kobject在指定的目录下创建目录-程序员宅基地

文章浏览阅读775次。前言:linux设备模型包括kobject、kobject_type、kset。为了更好的理解,举个栗子:kset就像一张蜘蛛网,而在网上有许多连线的交点,这些交点就是内核对象kobject,只是kset具备内核对象kobject的归类! 1. kobject内核对象功能:路径:linux-3.10.x\include\linux\kobject.h struct..._kobject在指定的目录下创建目录

Springboot项目中@JsonProperty不生效问题解决_@jsonproperty反序列化不起作用-程序员宅基地

文章浏览阅读1.2w次,点赞5次,收藏12次。@JsonProperty不生效问题解决问题描述在springboot项目中,反序列化的时候@JsonProperty不生效,看了很多文章,也都试过了,然后也没有用.解决最后偶然发现居然是注解的包导错了,因为Jackson的包比较多,就随便选了个,没想到造成这个惨案正确的包:如果还不行:也可能是fastjson导致不生效的问题,可以使用以下代码看下是用的那个序列化的.查jackson注解不生效:可从spring容器中获取HttpMessageConverters 查看converters属_@jsonproperty反序列化不起作用

FX5U以太网调试之TCP_Active_tcp active-程序员宅基地

文章浏览阅读8.4k次,点赞9次,收藏31次。三菱FX5u系列plc的使用很少,恰好用到顺便测试一次。1、产看文献,这里明确说明了我们的连接方式——active2、active的操作流程,从以下可以明了内容的范围:重点关注四个:SP.SOCOPEN(打开通道),SP.SOCSND(发送数据),SP.SOCRCV(接收数据),SP.SOCCLOSE(关闭通道)3、开始plc设置,需要设定相应的ip地址,和端口号。电脑测试一端口ip:打开网络共享中心-后续如图,电脑这边ip看你个人需求设定plc一侧ip设定:打开gx-w_tcp active

Vue element 表单提交报错 Cannot read property 'indexOf' of undefined_vue3组件 表单提交后再次打开提交报错-程序员宅基地

文章浏览阅读2.7k次。Vue element 表单提交报错 Cannot read property ‘indexOf’ of undefined如果表单中有的item用到了校验,应该每一项都加上prop新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你..._vue3组件 表单提交后再次打开提交报错

随便推点

一场智能机器密谋的金融“抢劫”,使财富越来越集中化-程序员宅基地

文章浏览阅读431次,点赞12次,收藏7次。亲爱的读者们,你们试想一下,他发明先进的科技是需要成本和利润,但当成本和收益已赚满了荷包,还长期处于财富集中且垄断的模式,对整个小镇的人们是一种无形的伤害。交易所应该承担解决这个问题的责任,然而,由于高频交易的存在,他们却从中获得了巨额的财富。大卫和其他人的技术都很神秘,大众对他们的关注点也仅在于他们巨额的财富和豪宅的积累,但请我们来分析一下他获取巨额财富的核心。你按下购买股票的按键后,然后马上按下卖出股票的按键,在0.1秒内就完成这两次交易,但高频交易系统可以在相同的时间内完成约10万次交易。

python中获取文件后缀名的方法_python path suffix-程序员宅基地

文章浏览阅读1.3w次,点赞2次,收藏20次。获取文件的后缀名有好几种方法:第一种:splittext()方法os.path.splittext(path)[-1]第二种:endswith()方法path = "test_user_info.py"bool = path.endswith(".py")print(bool)第三种:判断后缀名是否在字符串中(这种会存在误判,若是.pyx后缀,一样会打印True,前面两种不会)path = "test_user_info.py"if ".py" in path:_python path suffix

球谐光照——杂谈——待完成_光线通过球谐编码-程序员宅基地

文章浏览阅读1k次,点赞2次,收藏5次。https://zhuanlan.zhihu.com/p/49436452什么是球谐光照?什么是PRT?那其实顾名思义,球谐光照(spherical harmonics lighting)就是基于球面调和(SH,Spherical Harmonics)这个数学工具的一种光照/着色算法。一般来说,球谐光照可以用有限带宽的Spherical Harmonics来模拟低频的环境光照明,反射光和高光..._光线通过球谐编码

unity 下载图片使用并保存在本地_unity 保存图片成了一个文件夹-程序员宅基地

文章浏览阅读4.7k次。using System.Collections;using System.Collections.Generic;using UnityEngine;using System.IO;using UnityEngine.UI;public class Down : MonoBehaviour{ //图片下载测试 WWW www; //请求 string filePath..._unity 保存图片成了一个文件夹

密码学-分组加密的工作模式_密文传输错误扩散-程序员宅基地

文章浏览阅读633次。分组加密的工作模式多重加密和三重DES双重DES加密C=E(K2,E(K1,P))C=E(K_2, E(K_1, P))C=E(K2​,E(K1​,P))约化为单次加密可能存在K3K_3K3​满足E(K3,P)=(K2,E(K1,P))E(K_3, P)=(K_2, E(K_1, P))E(K3​,P)=(K2​,E(K1​,P))中间相遇攻击对与任何分组密码都有效,若C=E(K2,E(K1,P))C=E(K_2, E(K_1, P))C=E(K2​,E(K1​,P)),则存在X=E(_密文传输错误扩散

如何安装AI环境-程序员宅基地

文章浏览阅读143次。要安装AI环境,首先需要安装相应的开发工具和库。常用的工具包括Python、Anaconda和Jupyter Notebook。库可能包括TensorFlow、PyTorch、Scikit-learn等。具体安装步骤如下:下载并安装 Python:https://www.python.org/downloads/下载并安装 Anaconda:https://www.anaconda.co..._ai的安装准备需要python吗

推荐文章

热门文章

相关标签