gpt4 book ai didi

c++ - 获取光标下的控制权

转载 作者:行者123 更新时间:2023-11-28 05:57:24 29 4
gpt4 key购买 nike

我正在尝试在光标下进行控制。在我的示例中,我只能获得红色矩形,但我还需要获得其他矩形。

import QtQuick 2.4
import QtQuick.Controls 1.3
import QtQuick.Window 2.2
import QtQuick.Dialogs 1.2

ApplicationWindow {
id: mainWindow
title: qsTr("Hello World")
width: 640
height: 480
Item {
id: parentPanel
anchors.fill: parent

MouseArea {
anchors.fill: parent
hoverEnabled: true
onMouseXChanged: moveMouse()
onMouseYChanged: moveMouse()
function moveMouse()
{
currentControl.text = parentPanel.childAt(mouseX, mouseY).color ? parentPanel.childAt(mouseX, mouseY).color : "not colored"
}
}

Rectangle {
id: redRect
anchors {
fill: parent
leftMargin: 50
bottomMargin: 50
}
color: "red"
Rectangle {
id: yellowRect
anchors {
fill: parent
leftMargin: 50
bottomMargin: 50
}
color: "yellow"
Rectangle {
id: greenRect
anchors {
fill: parent
leftMargin: 50
bottomMargin: 50
}
color: "green"
}
}
}

Text {
id: currentControl
anchors.left: parent.left
anchors.bottom: parent.bottom
}
}
}

我有运行程序的屏幕截图。黄色里面是绿色矩形,红色里面是黄色。当鼠标光标悬停在控件上时,我需要获取控件引用。

Success get red color

最佳答案

我不熟悉 QML,所以我不知道它的确切语法,但你似乎想要循环直到找到最内层的控件并获得它的颜色。这是一些 C++ 风格的伪代码

auto control = parentPanel.childAt(mouseX, mouseY);
while (control)
{
currentControl.text = control.color ? control.color : "not colored";
control = control.childAt(mouseX, mouseY);
}

当然,这段代码假定传递的 X 和 Y 是绝对的,而不是相对的。如果它们是相对的,则需要在每个连续循环中将它们递减 control 的位置。

关于c++ - 获取光标下的控制权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33881791/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com