我是QML的新手,情况非常令人困惑。 因此,这是我的main.qml文件:
import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.0
Window {
id:rootWin
visible: true
width: 350
height: 330
ConnectBox
{
id:boxConnect
MouseArea
{
id: connectMouse
hoverEnabled: true
anchors.fill: boxConnect
}
}
Rectangle {
id: randomRec
width: parent.width/2
height: parent.height/6
// x: 50
anchors.top: boxConnect.bottom
// anchors.horizontalCenter: parent
anchors.topMargin: 10
border.color: "dimgray"
border.width: 5
radius: 14
}
}
ConnectBox.qml:
import QtQuick 2.0
Rectangle {
id: connectRec
width: parent.width/2
height: parent.height/6
anchors.centerIn: parent
border.color: "dimgray"
border.width: 5
radius: 14
}
我希望它位于randomRec
下方boxConnect
,所以它确实保留了,但它全部保留了,仅当我放置x: 50
时它才移动,但不适用于每种尺寸的窗口。
答案 0 :(得分:1)
首先,我建议将彼此相关的锚点放在同一文件中。
但是要使randomRec
在connectBox
下方居中,您应该使用以下锚点:
Rectangle {
id: rect1
width: 100
height: 200
color: "red"
anchors.centerIn: parent
}
Rectangle {
id: rect2
width: 75
height: 50
color: "yellow"
anchors.top: rect1.bottom
anchors.horizontalCenter: rect1.horizontalCenter
}
因此,我想您会在horizontalCenter: parent
行的附近,那里也应该有.horizontalCenter
行。但是,我将其锚定在rect1
上,因为这就是您想要的(假设您将来可能希望移动boxConnect ...您将必须找到所有引用)