我有一个qml布局,并且ApplicationWindow没有伸展到正确的高度以便滚动工作。
这是我的代码:
import QtQuick 2.4
import QtQuick.Controls 1.3
import QtQuick.LocalStorage 2.0
import QtQuick.Window 2.0
import "db.js" as DB
ApplicationWindow {
id: root
visible: true
width: Screen.width
title: "Nákupy"
menuBar: MenuBar {
Menu {
title: "Smazat"
MenuItem {
text: "&Smazat seznam"
onTriggered: {
console.log("Open action triggered");
}
}
}
}
Flickable {
id: flickable
anchors.fill: parent
contentHeight: column.height
contentWidth: root.width
Column {
anchors.fill: parent
id: column
Label {
id: welcometext
text: "Test"
horizontalAlignment: Text.AlignHCenter
y: 10
anchors.margins: 10
width: root.width
}
Repeater {
y: welcometext.top + welcometext.height + 10
id: repeater
model: lmodel
Button {
id: b
text: m_text
x: 20
width: root.width - 40
height: 70
onClicked: {
visible = false;
}
}
}
Button {
y: repeater.top + repeater.height + 30
width: root.width
text: "Přidat položku"
onClicked: {
console.log("clicked")
}
}
}
}
ListModel {
id: lmodel
}
Component.onCompleted: {
DB.open().transaction(function(tx){
tx.executeSql("CREATE TABLE IF NOT EXISTS products (id INTEGER PRIMARY KEY, name TEXT, done INTEGER)");
});
console.log(column.height);
for(var i = 0; i < 10; i++) {
lmodel.append({m_text: "Test "+i});
}
console.log(column.height);
console.log(welcometext.height);
}
}
列报告高度为0.
答案 0 :(得分:0)
尝试使用implicitHeight
:
如果未指定宽度或高度,则定义Item的自然宽度或高度。
大多数项目的默认隐式大小为0x0,但有些项目具有固有的隐式大小,无法覆盖[...]
设置隐式大小对于根据内容[...]
定义具有首选大小的组件非常有用