我正在使用qml在qt中进行自定义控件
尝试使用qt的先前版本期望5.11可以正常工作,我不知道我需要更改什么,请问有人可以帮助
Rectangle{
width: parent.width - 30
height: 25
anchors.leftMargin: 15
anchors.left: parent.left
color: "transparent"
visible: (!auto_start)
RowLayout{
anchors.fill: parent
Text{
text: "Frame Rate:"
anchors.leftMargin: 10
anchors.left: parent.left
font.pointSize: 13
font.family: fontFamily.name
}
Text{
id: framesValueLabel
text: "0 fps"
font.bold: true
anchors.right: parent.right
anchors.rightMargin: 10
font.pointSize: 13
font.family: fontFamily.name
}
}
}
以前的版本可以正常运行,而现在的qt5.11可以正常运行,但是在控制台中显示很多警告错误
答案 0 :(得分:3)
您不应将锚点与布局结合使用,因为它们都可以完成定位项目的相似任务。
如警告所示:
Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
也许在以前的版本中,Qt并不聪明,无法检测到这些可能的错误,所以我没有指出。
因此解决方案是使用Layout.alignment,Layout.leftMargin和Layout.rightMargin:
Rectangle{
width: parent.width - 30
height: 25
anchors.leftMargin: 15
anchors.left: parent.left
color: "blue"
visible: (!auto_start)
RowLayout{
anchors.fill: parent
Text{
text: "Frame Rate:"
Layout.leftMargin: 10
Layout.alignment : Qt.AlignLeft
font.pointSize: 13
font.family: fontFamily.name
}
Text{
id: framesValueLabel
text: "0 fps"
font.bold: true
Layout.alignment : Qt.AlignRight
Layout.rightMargin: 10
font.pointSize: 13
font.family: fontFamily.name
}
}
}