1
我有一個問題,在QML文件錨, 這個代碼不工作時,anchors.left並不適用於文本,該文本留在複選框:Qt的QML錨問題
Checkbox{
objectName: "chkRemenber"
id: chkRemenber
}
Text {
id: labRemenber
text: "REMENBER"
anchors.left: chkRemenber.right
}
但是,如果我不使用我自己的組件, 但圖像,它的工作,文字在chkRemenber2左:
Image {
id: chkRemenber2
width: 30
height: 30
source: "../checkbox_on.png"
fillMode: Image.PreserveAspectFit;
MouseArea {
anchors.fill: parent
onClicked: toggle()
}
}
Text {
id: labRemenber2
text: "REMENBER"
anchors.left: chkRemenber2.right
}
這是我的複選框代碼:
import QtQuick 1.0
Rectangle {
id: container
property bool pressed: false
property string src: "../checkbox_off.png"
function toggle(){
if (container.state == "on")
container.state = "off";
else
container.state = "on";
console.log("CLICK ! " + container.state);
}
Image {
id: checkBoxImg
width: 30
height: 30
source: src
fillMode: Image.PreserveAspectFit;
MouseArea {
anchors.fill: parent
onClicked: toggle()
}
}
states: [
State {
name: "on"
PropertyChanges { target: checkBoxImg; source: "../checkbox_on.png" }
PropertyChanges { target: container; pressed: true }
},
State {
name: "off"
PropertyChanges { target: checkBoxImg; source: "../checkbox_off.png" }
PropertyChanges { target: container; pressed: false }
}
]
}
我已經添加了寬度:30高度:30,它的工作。感謝 – NicoMinsk 2011-05-27 14:18:25
如果你想進一步改進代碼,使用height:parent.height(和寬度)在圖像中(或其他方式)或者甚至使用圖像作爲您的複選框的根。矩形不是真的需要。 – blakharaz 2011-05-27 16:04:23