Мне нужно создать вид с полосой прокрутки с несколькими линиями, а в середине он должен быть динамически изменен. Итак, я создал конструкцию так:
ScrollView {
property int number: 1
id: scroll
anchors.fill: parent
clip : true
ColumnLayout {
anchors.left: parent.left
anchors.right: parent.right
spacing: 20
RowLayout {
Label {
color: enabled ? "#303030" : "#8a8a8a"
font.weight: Font.Bold
Layout.preferredWidth: scroll.width / 2
Layout.minimumWidth: scroll.width / 2
text: "Some text"
}
}
ListView {
id: listView1
Layout.fillHeight: true
Layout.fillWidth: true
Layout.bottomMargin: 40
spacing: 20
interactive: false
width: parent.width
height: (number + 1) * 40
delegate: Item {
id: itemDelegate
anchors.left: parent.left
anchors.right: parent.right
height: 40
Button {
anchors.fill: parent
text: someText
}
}
model: ListModel {
id: listModel
ListElement {
someText: "first"
}
}
}
RowLayout {
id: rowLayout2
anchors.top: listView1.bottom
Label {
color: enabled ? "#303030" : "#8a8a8a"
font.weight: Font.Bold
Layout.preferredWidth: scroll.width / 2
Layout.minimumWidth: scroll.width / 2
text: "Some text"
}
}
RowLayout {
anchors.top: rowLayout2.bottom
Button {
id: button1
text: qsTr("Create")
width: (parent.width / 5)*2
height: 50
onClicked: {
listModel.append({someText: "Button " + (++number)})
}
}
Button {
id: button2
text: qsTr("Delete")
width: (parent.width / 5)*2
height: 50
onClicked: {
listModel.remove(textIndex.text)
--number;
}
}
}
}
}
Смысл приведенного выше кода заключается в том, что у меня есть ScrollView и ColumnLayout внутри. ColumnLayout имеет RowLayout №1, затем ListView, который можно динамически изменять, нажимая кнопки «Создать» и «Удалить», и у меня есть RowLayout №2 после ListView и RowLayout №3 с кнопками для изменения размера ниже RowLayout №2. Итак, суть в том, что когда я добавляю строку в ListView, RowLayout №2 и RowLayout №3 должны автоматически перемещаться вниз, когда я удаляю строку, они должны быть перемещены вверх. И, тогда что-то за пределами экрана, должна появиться полоса прокрутки. Итак, у меня есть 2 проблемы:
- Полоса прокрутки не появляется, когда много линий и они находятся за пределами экрана.
- "QML RowLayout: Обнаружены привязки на элемент, управляемый макетом. Это неопределенное поведение; вместо этого используйте Layout.alignment. " - эта ошибка на RowLayout №2 и RowLayout №3.
Спасибо за помощь!