Qt 当柱高度计算包含全宽元素时,为什么柱高度计算会中断?
我想知道当Qt 当柱高度计算包含全宽元素时,为什么柱高度计算会中断?,qt,qml,qt5,qtquick2,qt5.4,Qt,Qml,Qt5,Qtquick2,Qt5.4,我想知道当行跨越整个宽度时,列高度计算为什么会中断 在以下代码中切换注释以复制: import QtQuick 2.3 import QtQuick.Controls 1.2 import QtQuick.Window 2.2 ApplicationWindow { width: 640 height: 480 visible: true Column { id: col anchors { left:
行
跨越整个宽度时,列
高度计算为什么会中断
在以下代码中切换注释以复制:
import QtQuick 2.3
import QtQuick.Controls 1.2
import QtQuick.Window 2.2
ApplicationWindow {
width: 640
height: 480
visible: true
Column {
id: col
anchors {
left: parent.left
right: parent.right
}
Row {
id: row
anchors {
left: parent.left
// right: parent.right
}
Rectangle {
color: "green"
width: 20
height: 20
}
Rectangle {
color: "red"
width: 30
height: 30
}
}
}
Component.onCompleted: {
console.log("col.height: " + col.height)
console.log("col.implicitHeight: " + col.implicitHeight)
console.log("col.width: " + col.width)
console.log("col.implicitWidth: " + col.implicitWidth)
console.log("row.height: " + row.height)
console.log("row.implicitHeight: " + row.implicitHeight)
console.log("row.width: " + row.width)
console.log("row.implicitWidth: " + row.implicitWidth)
}
}
案例1(如上所述):
案例2(行
跨越整个宽度):
对我来说,
col.height
和col.implicitHeight
是30,col.width
和col.implicitWidth
是640,row.height
和row.implicitHeight
是30,row.width
是640和row.implicitWidth
是50。在Mac 10.10.3和Qt 5.4上进行测试,将行的锚定设置为父级的左/右。我可以使用Qt5.4.2在Ubuntu和Windows上重现上述行为。在任何情况下,我都不会得到640的col.implicitWidth/width
。要么是0要么是50。谢谢@qcling的提示。我可以在OS X上复制正确的行为。所以我认为这是一个bug。什么版本/OS?在我的Mac电脑上,我得到了与Simon非常相同的结果,但我安装了OSX 10.10.4和Qt 5.4.2@qCring。对我来说,它说col.height
和col.implicitHeight
是30,col.width
和col.implicitWidth
是640,row.height
和row.implicitHeight
是30,row.width
为640,row.implicitWidth
为50。在Mac 10.10.3和Qt 5.4上进行测试,将行的锚定设置为父级的左/右。我可以使用Qt5.4.2在Ubuntu和Windows上重现上述行为。在任何情况下,我都不会得到640的col.implicitWidth/width
。要么是0要么是50。谢谢@qcling的提示。我可以在OS X上复制正确的行为。所以我认为这是一个bug。什么版本/OS?在我的Mac电脑上,我得到了与Simon非常相同的结果,但我安装了OSX 10.10.4和Qt 5.4.2@qCring。对我来说,它说col.height
和col.implicitHeight
是30,col.width
和col.implicitWidth
是640,row.height
和row.implicitHeight
是30,row.width
为640,row.implicitWidth
为50。在Mac 10.10.3和Qt 5.4上进行测试,将行的锚定设置为父级的左/右。我可以使用Qt5.4.2在Ubuntu和Windows上重现上述行为。在任何情况下,我都不会得到640的col.implicitWidth/width
。要么是0要么是50。谢谢@qcling的提示。我可以在OS X上复制正确的行为。所以我认为这是一个bug。什么版本/OS?在我的Mac电脑上,我得到了与Simon完全相同的结果,但我安装了OSX 10.10.4和Qt 5.4.2@qCring。
col.height: 30
col.implicitHeight: 30
col.width: 0
col.implicitWidth: 50
row.height: 30
row.implicitHeight: 30
row.width: 50
row.implicitWidth: 50
col.height: 0
col.implicitHeight: 0
col.width: 0
col.implicitWidth: 0
row.height: 30
row.implicitHeight: 30
row.width: 0
row.implicitWidth: 50