​​​​​​​​​​​​​​★3.3 事故处理

打印 上一主题 下一主题

主题 1118|帖子 1118|积分 3354

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
★3.3.1 ※MouseArea
Item <-- MouseArea
属性



acceptedButtons : Qt::MouseButtons

containsMouse : bool
【书】只读属性。表明当前鼠标光标是否在MouseArea上,默认只有鼠标的一个按钮处于按下状态时才可以被检测到。
containsPress : bool

cursorShape : Qt::CursorShape

drag
下面这些解释都来自书P117
drag.active : bool
【书】指定目标项目当前是否可以被拖动。值:true 或 false
?似乎是个只读属性不能设置。等于说设置了target就等于说是true了?
drag.axis : enumeration
【书】指定可以拖动的方向。值:Drag.XAxis 程度方向
Drag.YAxis 垂直方向
Drag.XAndYAxis 程度和垂直方向
drag.filterChildren : bool
【书】使子 MouseArea 也启用拖动。值:true 或 false
drag.maximumX : real
【书】最小和最大拖动隔断。值是像素,real类型的值。
drag.maximumY : real
drag.minimumX : real
drag.minimumY : real
drag.smoothed : bool
【书】是否平滑拖动。值:true或false
drag.target : Item
【书】指定要拖动的项目ID。值:对象
drag.threshold : real
【书】启用拖动的阈值,超过该值才被认为是一次拖动;合理设置阈值可以有效避免用户因抖动等原因造成的拖动误判。 real类型的值,以像素为单位。
enabled : bool
【书】是否启用鼠标处理,默认为true。如果设置为false则不处理任何鼠标事故。
hoverEnabled : bool
【书】默认环境下MouseArea项目只陈诉鼠标单击而不陈诉鼠标光标的位置改变,这可以通过设置hoverEnabled属性为true来举行更改。如许设置后,onPositionChanged(),onEntered()和onExited()等处理函数才可以使用。而且这时containsMouse属性也可以在没有鼠标按钮按下的环境下检查光标。
mouseX : real
onMouseXChanged: {      
    if (mouseX - recZoom.x >= 0) {      
         xScaleZoom = 1;
         recZoom.width = mouseX - recZoom.x;
     } else {      
         xScaleZoom = -1;
         recZoom.width = recZoom.x - mouseX;
     }
}
mouseY : real
onMouseYChanged: {      
    if (mouseY - recZoom.y >= 0) {      
        yScaleZoom = 1;
        recZoom.height = mouseY - recZoom.y;
     } else {      
         yScaleZoom = -1;
         recZoom.height = recZoom.y - mouseY;
     }
}
pressAndHoldInterval : int

pressed : bool
【书】只读属性,表明是否在MouseArea上按住了鼠标按钮,这个属性经常用于属性绑定,可以实现在鼠标按下时执行一些操作。
【补例子】
pressedButtons : MouseButtons

preventStealing : bool

propagateComposedEvents : bool
【书】属性设置为true来传播clicked,doubleClicked和pressAndHold等事故。但是只有在MouseArea没有接受这些事故的时候,它们才可以继承向下传播。
scrollGestureEnabled : bool

信号



canceled()

clicked(MouseEvent mouse)

doubleClicked(MouseEvent mouse)

entered()

exited()

positionChanged(MouseEvent mouse)
onPositionChanged()
pressAndHold(MouseEvent mouse)

pressed(MouseEvent mouse)
onPressed()
released(MouseEvent mouse)
onReleased()
wheel(WheelEvent wheel)

Method





为了与差别的元素交互,你通常需要使用 MouseArea(鼠标地区)元素。这是一个矩形的非可视化元素对象,你可以通过它来捕获鼠标事故。当用户与可视化端口交互时,mouseArea 通常被用来与可视化元素对象一起执行下令。

很多时候,MouseArea 地区会传递一个鼠标事故作为参数,这个参数中包含了很多鼠标事故信息,比方,单击的位置,具体按下的一个鼠标左键还是右键,以及一些键盘按键信息。
  1. Rectangle {
  2.      width: 100; height: 100
  3.      color: "green"
  4.      MouseArea {
  5.          anchors.fill: parent
  6.          acceptedButtons: Qt.LeftButton | Qt.RightButton
  7.          onClicked: {
  8.              if (mouse.button == Qt.RightButton)
  9.                  parent.color = 'blue';
  10.              else
  11.                  parent.color = 'red';
  12.          }
  13.      }
  14. }
复制代码
在上面的例子中,当 Rectangle 地区被右键单击时会触发改变颜色。
也是继承自Item.
由于它看不到。以是在MouseArea里外面又套了一个Rectangle.下面的例子是在MouseArea里面嵌套一个Rectangle.


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

笑看天下无敌手

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表