Qt QML-设置宽度和高度无效
快速控制2,Qt 5.10 我基于Qt QML-设置宽度和高度无效,qt,qml,qtquickcontrols2,Qt,Qml,Qtquickcontrols2,快速控制2,Qt 5.10 我基于ListView项创建了表控件 其中一列将使用此组件显示: import QtQuick 2.10 import QtQuick.Controls 2.3 import QtQuick.Layouts 1.3 Item { id: root implicitHeight: item1.implicitHeight ColumnLayout { id: item1 visible: !mode
ListView
项创建了表控件
其中一列将使用此组件显示:
import QtQuick 2.10
import QtQuick.Controls 2.3
import QtQuick.Layouts 1.3
Item
{
id: root
implicitHeight: item1.implicitHeight
ColumnLayout
{
id: item1
visible: !model.finished
width: parent.width
RowLayout
{
Label
{
text: "38%"
Layout.alignment: Qt.AlignLeft
}
Label
{
text: "Paused"
Layout.alignment: Qt.AlignRight
}
}
ProgressBar
{
from: 0; to: 100; value: 40
// Variant A
/*Layout.preferredWidth: 30
Layout.preferredHeight: 10*/
// Variant B
width: 30
height: 10
}
}
}
谁能解释一下为什么变体B不起作用。我可以指定任何宽度/高度值,甚至只是删除它们-没有效果。变量A(Layout.preferredWidth/Layout.preferredHeight)工作正常
备选案文A:
备选案文B:
布局项改变其子项的尺寸。这就是他们的目的,他们的行为被记录在案 根据
ColumnLayout
的文档,行为是:
此属性保存布局中项目的首选宽度。如果首选宽度为-1,它将被忽略,而布局将改用隐式宽度。默认值为-1
由于默认值为-1,它将采用implicitWidth
——它没有写入“而是使用宽度”
如果不想使用
Layout
请不要使用Layout
。你可以选择栏
。“行为被记录在案。”-你能告诉我确切位置吗?我看不到…现在我明白了改变宽度不会改变隐含宽度。那就有道理了。。。