0
У меня возникла проблема с поведением размера окна всплывающего окна с использованием Qt Quick Controls 2. Когда я помещаю ListView в качестве contentItem для всплывающего окна, размер окна всплывающего окна равен нулю. Некоторые примеры кода, которые воспроизводят проблему:Qt quick controls ListView size issue
import QtQuick 2.4
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
ApplicationWindow {
id: window
visible: true
width: 800
height: 600
Button {
text: "open popup"
onClicked: popup.open()
}
Popup {
id: popup
x: (window.width - width)/2
y: window.height/6
width: contentWidth
height: contentHeight
contentItem: ListView {
width: contentWidth
height: contentHeight
model: ListModel {
ListElement {
name: "Apple"
cost: 2.45
}
ListElement {
name: "Orange"
cost: 3.25
}
ListElement {
name: "Banana"
cost: 1.95
}
}
delegate: RowLayout {
Label {
text: name
}
Label {
text: cost
}
}
}
}
}
Как сделать всплывающее окно размером с ListView?
Что такое 'contentWidth' /' contentHeight'? – folibis
Согласно документации: «Это свойство содержит ширину содержимого. Оно используется для вычисления общей неявной ширины всплывающего окна». –
Если вы хотите, чтобы ваше всплывающее окно было такого же размера, как 'contentItem', просто ничего не делать. Согласно документам: «Если в всплывающем окне используется только один элемент, он изменит размер, чтобы он соответствовал неявному размеру его содержащегося элемента» – folibis