错误:QML列:无法为Column内的项指定top,bottom,verticalCenter,fill或centerIn锚点

时间:2013-04-08 04:58:11

标签: qt qml

file:///home/biergaizi/WeCase.commit/src//ui/SmileyDelegate.qml:6:5: 
QML Column: Cannot specify top, bottom, verticalCenter, fill or centerIn 
anchors for items inside Column

为什么我这样做?我试着评论每一行而没有找到答案。 我对它一无所知。

SmileyView.qml

import QtQuick 1.0

Rectangle {
    width: 300; height: 200


    GridView {
        id: grid
        anchors.fill: parent
        cellWidth: 36; cellHeight: 40

        model: SmileyModel
        delegate: SmileyDelegate {}
        highlight: Rectangle { color: "lightsteelblue"; radius: 5 }
        focus: true
    }
}

SmileyDelegate.qml

import QtQuick 1.0

Item {
    width: grid.cellWidth; height: grid.cellHeight

    Column {
        anchors.fill: parent
        Image { source: path; anchors.horizontalCenter: parent.horizontalCenter }
        Text { text: name; anchors.horizontalCenter: parent.horizontalCenter }

        MouseArea {
            anchors.fill: parent
            onClicked: {
                highlight: color: "lightsteelblue"; radius: 5 
                grid.currentIndex = index 
            }
            onDoubleClicked: {
                parentWindow.returnSmileyName('[' + name + ']')
            }
        }
    }
}

1 个答案:

答案 0 :(得分:2)

列正在尝试将MouseArea锚定到Image和Text旁边,但MouseArea指定其锚点以填充其父级。这两件事是矛盾的,因此你会得到错误。

如果您将MouseArea移出Column并进入SmileyDelegate的基本项目,您可能会发现它的效果正如您所期望的那样。