首页 > 其他分享 >qt Qml qml MouseArea的属性和信号方法

qt Qml qml MouseArea的属性和信号方法

时间:2024-04-07 14:33:37浏览次数:30  
标签:real console Qt log MouseArea drag bool qml qt

Mousearea

属性:

acceptedButtons:​接受的鼠标按键,默认是左键

Qt.LeftButton | Qt.RightButton | Qt.AllButtons等等

pressedButtons:​按下的是什么键?左键or右键等

Rectangle{
        color: "yellow"
        anchors.centerIn: parent
        width: 200
        height: 200
        MouseArea {
            id: mouseArea
            anchors.fill: parent
            acceptedButtons: Qt.LeftButton | Qt.RightButton
            onPressed: {
            var ret =pressedButtons & Qt.RightButton
            console.log(ret? "right":"left")
            }

        }
    }

hoverEnabled :bool​是否开启触发光标悬浮的层

containsMouse : bool​光标是不是在这我的area里面

containsPress : bool​光标是不是在area里面按下

Rectangle{
        color: "yellow"
        anchors.centerIn: parent
        width: 200
        height: 200
        MouseArea {
            id: mouseArea
            anchors.fill: parent
            hoverEnabled:true
            acceptedButtons: Qt.LeftButton | Qt.RightButton
            onPressed: {
            var ret =pressedButtons & Qt.RightButton
            console.log(ret? "right":"left")
            }
            onContainsMouseChanged: {console.log("onContainsMouseChanged",containsMouse)}
            onContainsPressChanged: {console.log("onContainsPressChanged",containsPress)}

        }
    }

cursorShape : Qt::CursorShape​光标的样式选择,进入area后会变样式

MouseArea {
            id: mouseArea
            anchors.fill: parent
            hoverEnabled:false
            cursorShape: Qt.SplitVCursor
            acceptedButtons: Qt.LeftButton | Qt.RightButton
            onPressed: {
            var ret =pressedButtons & Qt.RightButton
            console.log(ret? "right":"left")
            }
            onContainsMouseChanged: {console.log("onContainsMouseChanged",containsMouse)}
            onContainsPressChanged: {console.log("onContainsPressChanged",containsPress)}

drag​拖动

  • drag.target : Item​指定控件
  • drag.active : bool
  • drag.axis : enumeration​指定轴
  • drag.minimumX : real​指定值
  • drag.maximumX : real​指定值
  • drag.minimumY : real​指定值
  • drag.maximumY : real​指定值
  • drag.filterChildren : bool​指定子控件是否继承拖动
  • drag.threshold : real
  Rectangle {
      id: container
      width: 600; height: 200

      Rectangle {
          id: rect
          width: 50; height: 50
          color: "red"
          opacity: (600.0 - rect.x) / 600

          MouseArea {
                 anchors.fill: parent
                 drag.target: rect
                 drag.axis: Drag.XAxis|Drag.YAxis
                 drag.minimumX: 0
                 drag.maximumX: container.width - rect.width
             }
      }
  }

enabled : bool​是否使能area

mouseX : real​光标在区域移动的坐标 需要hoverEnabled :bool​联动
mouseY : real​光标在区域移动的坐标 需要hoverEnabled :bool​联动

pressAndHoldInterval : int​长按触发信号的时间 单位ms

propagateComposedEvents : bool​子area是否可以触发父area的信号

信号函数:

clicked:​鼠标的点击

pressed:​按下鼠标

relesed:​松开鼠标

标签:real,console,Qt,log,MouseArea,drag,bool,qml,qt
From: https://blog.csdn.net/weixin_60755571/article/details/137353013

相关文章

  • 毕业设计程序开源 Spring Boot+vue.js+Echart+mysql +QT+halcon
    1.介绍 涉及到的技术框架比较多,但是也不难,相关技术需要些基础。目前还是个半成品,还有些数据图表和QT功能没做完善,本来想在前端部分做大数据分析平台的,后续有空再完善。下面简单介绍一下。源代码此处:链接:https://pan.baidu.com/s/1904kLOv4EDJkcBuuNe1jqw?pwd=6666 提取码:6......
  • Pyqt5-tools(安装失败解决方法)
    1.安装失败原因: 2022年2月目前pyqt5能在python3.10环境安装的成功的版本是5.15.6,而pyqt5-tools的最新版本是:pyqt5-tools5.15.4.3.2,因为python3.10只能安pyqt55.15.6,这就限制了pyqt5-tools安装会失败,最简单的办法是降低python的版本到3.9或3.8!安装pyqt6也一样解决不了,已......
  • Qt血的教训/细数Qt开发的各种坑/又爱又恨/欢迎围观留言评论
    一、吐槽总结搞Qt开发十几年了,最初从Qt4.6开始,一直追新到现在的6.7版本,中间经历过无数的血的教训,简直是又爱又恨。其实Qt挺好的,但是还是要忍不住吐槽一下,本人还是希望Qt发展的越来越好,这样我的饭碗就能保住了。1.版本众多Qt的版本多到你数都数不清,多到你开始怀疑人生。Qt版......
  • qt 设置QSS样式汇总
    参考博客1:【QT】史上最全最详细的QSS样式表用法及用例说明 参考博客2:QFrame样式  参考博士3:Qt前端技术:3.QSS字体样式......
  • OpenCV中表示图像的类Mat在QT里的基本使用
    在Qt中使用OpenCV的Mat类来表示和处理图像是相对简单的,因为Qt和OpenCV都是跨平台的,并且可以很好地在一起工作。以下是如何在Qt项目中使用OpenCV的Mat类的基本步骤:1.在Qt代码中包含OpenCV头文件在Qt的源代码文件中,你需要包含OpenCV的头文件以及opencv统一的命名空间来使用Mat......
  • 【Qt 学习笔记】详解Qt中的信号和槽
    博客主页:DuckBro博客主页系列专栏:Qt专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞......
  • QT和C++排列组合
    界面比较简洁,如有需要请大家自行完善!!!头文件#pragmaonce#include<QtWidgets/QMainWindow>#include"ui_text.h"classtext:publicQMainWindow{  Q_OBJECTpublic:  text(QWidget*parent=nullptr);  ~text();  voidParseStringToVector(con......
  • 使用pyqt,opencv,matplotlib开发一个图片浏览器!
    使用python开发一个图片浏览器!作用效果代码作用读取图片到界面并显示,对与宽度或高度大于600像素的图片进行等比缩小,让图片适合显示到界面;输出图片的基础信息,大小和颜色通道;绘制图片的单颜色通道直方图;效果颜色直方图有记忆功能,方便做对比代码importcopyimpor......
  • 使用OpenCV和PyQT编写的图片显示器,实现图片选择显示和保存
    使用OpenCV和PyQT编写的图片显示器简要效果代码简要为了避免重复编写pyqt控件,先写好此代码,方便使用。实现了以下基础功能:选择图片显示图片保存图片效果选择图片:显示图片:保存图片:代码importcopyimportcv2importsysfromPyQt5.QtWidgetsimport(......
  • Qt中char数组转16进制字符
    Tcp传入的16进制转16进制字符关键点:char、QByteArray::toHex()、QByteArray::fromRawData()知识点补充char在32bit或64bit系统中占一个1Bytechar中实际存储的是数字,当存在字符时,会把字符转为ASCLL码中对应的数组,存储进内存中char占1Byte,即4bit,而一个16进制是2的4次方即需......