ColumnLayout { anchors.centerIn: parent Image { id: channelImage source: "qrc:/images/ze-apps-o Copy 3@1x_1.png" width: parent.height / 2 height: parent.height / 2 fillMode: Image.PreserveAspectFit Layout.alignment: Qt.AlignHCenter } Text { id: channelText text: "Channel" horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter color: "white"; font.pixelSize: parent.height*6*rZoomRatio; font.weight: Font.DemiBold font.bold: true } } onClicked: { appStackView.pop() appStackView.push(channelComponent) channelText.color="pink" homeText.color="white" mixerText.color="white" channelImage.source="qrc:/images/ze-apps-o Copy 3@1x.png" homeImage.source="qrc:/images/antOutline-home@1x.png" mixerImage.source="qrc:/images/Copy@1x.png" } 报错qt5.15.2 invalid property name "anchors".(M16)
时间: 2024-02-10 19:26:10 浏览: 176
在您提供的代码中,出现了一个错误。根据您提供的错误信息,看起来是因为在 ColumnLayout 中使用了 anchors 属性,而该属性实际上是无效的。
ColumnLayout 是 Qt Quick Controls 2 中的一种布局,它不支持 anchors 属性。如果您想在 ColumnLayout 中设置控件的位置和大小,可以使用 Layout 的属性和方法来实现。
例如,您可以使用 Layout.alignment 来设置控件的水平对齐方式,使用 Layout.fillWidth 和 Layout.fillHeight 来设置控件是否填充父控件的宽度和高度。
以下是一个修改后的示例代码:
```qml
ColumnLayout {
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter // 设置布局的对齐方式
Image {
id: channelImage
source: "qrc:/images/ze-apps-o Copy 3@1x_1.png"
width: parent.height / 2
height: parent.height / 2
fillMode: Image.PreserveAspectFit
Layout.alignment: Qt.AlignHCenter // 设置控件的水平对齐方式
}
Text {
id: channelText
text: "Channel"
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
color: "white";
font.pixelSize: parent.height * 6 * rZoomRatio;
font.weight: Font.DemiBold
font.bold: true
}
MouseArea {
anchors.fill: parent // 添加 MouseArea 来接收点击事件
onClicked: {
appStackView.pop()
appStackView.push(channelComponent)
channelText.color = "pink"
homeText.color = "white"
mixerText.color = "white"
channelImage.source = "qrc:/images/ze-apps-o Copy 3@1x.png"
homeImage.source = "qrc:/images/antOutline-home@1x.png"
mixerImage.source = "qrc:/images/Copy@1x.png"
}
}
}
```
请注意,我添加了一个 MouseArea 来接收点击事件,并将其设置为填充整个父控件。这样,当用户点击 ColumnLayout 区域时,就会触发 onClicked 事件。
希望这可以帮助到您!如果您有任何其他问题,请随时提问。
阅读全文