- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下代码生成一个白色矩形,其中包含一个红色矩形和一个灰色矩形。每个矩形都有一个关联的 MouseArea。当在其中单击鼠标时,灰色矩形变为蓝色。红色矩形在鼠标光标进入其中时打印一条控制台消息,在发出释放信号时打印另一条消息。
我愿意:
这可能吗?使用当前代码,只有在输入时未按下鼠标按钮时才会发出红色矩形的输入信号,并且只有在该矩形内按下按钮时才会发出释放信号。显然,问题在于如果按下按钮,灰色/蓝色矩形会控制鼠标事件。
这是一个与我正在开发的应用程序中遇到的场景类似但经过简化的场景。
import QtQuick 2.0
Rectangle{
color: "white"
height: 210
width: 500
MouseArea{
id: mainMa
anchors.fill: parent
hoverEnabled: true
onReleased:{console.log("white-released")}
}
Column{
spacing: 10
Rectangle{
color: "red"
height: 100
width: 500
MouseArea{
anchors.fill: parent
hoverEnabled: true
propagateComposedEvents: true
onEntered:{console.log("red-enter")}
onReleased:{console.log("red-released")}
}
}
Rectangle{
color: "#666666"
height: 100
width: 500
MouseArea{
id: ma
anchors.fill: parent
hoverEnabled: true
onPressed: {parent.color = "blue"; console.log("grey pressed")}
onReleased: {parent.color = "#666666"; console.log("grey released")}
}
}
}
最佳答案
我认为您需要拖放操作。为此,在红色矩形中添加 DropArea 并在灰色矩形中添加事件拖动
类似的东西(最少的代码):
Rectangle {
Column {
Rectangle {
id: redRect
DropArea {
anchors.fill: parent
onEntered: { console.log("red-enter") }
onDropped: { console.log("red-released") }
}
}
Rectangle {
id: greyRect
Drag.active: mousearea.drag.active
Drag.hotSpot.x: mousearea.mouseX
Drag.hotSpot.y: mousearea.mouseY
MouseArea {
id: mousearea
anchors.fill: parent
onReleased: parent.Drag.drop()
drag.target: parent
}
}
}
}
如果不想移动灰色矩形,可以添加不可见的可拖动项:
MouseArea {
id: mousearea
anchors.fill: parent
onReleased: dargItem.Drag.drop()
drag.target: dargItem
Item {
id: dargItem
x: mousearea.mouseX
y: mousearea.mouseY
width: 1; height: 1
Drag.active: mousearea.drag.active
Drag.hotSpot.x: 1
Drag.hotSpot.y: 1
}
}
关于qt - QML - MouseArea/MouseEvent 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19032143/
我查看了类似的线程,但没有太大帮助。 我正在使用 QtQuick.Controls.Button在 QML将鼠标悬停在按钮上时,我无法更改光标形状!我想在不使用 MouseArea 的情况下实现这一点
以下代码生成一个白色矩形,其中包含一个红色矩形和一个灰色矩形。每个矩形都有一个关联的 MouseArea。当在其中单击鼠标时,灰色矩形变为蓝色。红色矩形在鼠标光标进入其中时打印一条控制台消息,在发出释
我正在使用 MouseArea 实现手势捕捉器(向左/向右滑动)。它应该在具有垂直 flickableDirection 的 Flickable 内工作。此外,它应该以视觉堆栈顺序将鼠标事件传播到它下
如果我放一个 MouseArea在 QML 元素上,然后 MouseArea将窃取所有鼠标事件。 因此,TextEdit将是不可编辑和不可选择的。 TextEdit { // some pro
是否可以传播 MouseArea的 positionChanged 事件到基础事件? 我试图设置 mouse.accepted至 false对于最顶层 MouseArea 的任何现有信号处理程序以及设
内部MouseArea首先获取鼠标事件。我想“看到”这些事件,以便设置各种属性,但不影响它们。我希望鼠标事件传播到任何父 MouseArea。 考虑这段代码。我想单击蓝色方 block 来查看“蓝色按
有一个 QQuickPaintedItem 带有重载的鼠标事件处理程序: void Plotter::mousePressEvent(QMouseEvent *event) { qDebug(
如何从鼠标区域获取鼠标的绝对位置?我需要让它显示正确位置的弹出窗口 Item { Menu { id: menu MenuItem {
我想在 QML 中实现以下场景。 这是 ListView 的示例/简化委托(delegate)元素: Component { Item { id: container
我有一个在 QML 中声明的 ChartView 项,我需要类似橡皮筋的缩放功能。这可以通过半透明矩形和 MouseArea 项目来实现。问题是对于一个矩形,它只能选择从左上角到右下角的区域,因为带有
我有一个在 QML 中声明的 ChartView 项,我需要类似橡皮筋的缩放功能。这可以通过半透明矩形和 MouseArea 项目来实现。问题是对于一个矩形,它只能选择从左上角到右下角的区域,因为带有
我有以下代码: ListView { delegate: MyDelegate { MouseArea { anchors.fill: parent
在 Android 上测试应用程序时,我注意到发生了一些奇怪的事情。双击事件处理程序已触发,但该特定项目没有发生任何双击。 试图隔离这个问题,我发现几乎每一个点击链都像双击一样快速,不管两个对象会导致
我遇到了问题,如何在 qml 中检测通过 MouseArea 的滑动? 此代码,来自文档: Rectangle { id: container width: 600; heig
我在 QT QML 中创建了一个项目,其中包含一个 MouseArea 元素。 这是代码, import QtQuick 1.0 Rectangle { id: base width: 240 hei
我正在使用 qt quick controls 2 SplitView,似乎 SplitView 项内的任何 MouseArea 都将鼠标事件从SplitView 句柄。这意味着当 handle 位于
摘要:如何在不硬编码尺寸的情况下将图标粘贴在文本旁边,并将它们都包装在 MouseArea 中......以一种可行的方式在 GridLayout 内? 我创建了一个 QML 布局,其中在可点击的“按
import QtQuick 2.2 import QtQuick.Window 2.1 import QtQuick.Controls 1.1 ApplicationWindow { fla
我正在尝试将 MouseArea 鼠标事件与 C++ 连接,但是 QQuickMouseArea 是私有(private)的,所以我无法获取信号。 像这样: QObject::connect(mous
有一个 TextArea,我已将 activeFocusOnPress 属性设置为 false 以阻止虚拟键盘弹出,但是当用户单击 TextArea 时,光标位置应该移动。为了实现这一目标,我认为 m
我是一名优秀的程序员,十分优秀!