【发布时间】:2014-08-03 16:01:35
【问题描述】:
我在 qml 中使用 listview 和控件动态加载创建可折叠面板。
property Component textBoxComponent;
property Component comboBoxComponent;
property Component twoStateBoxComponent;
property Component sliderComponent;
Component.onCompleted: {
textBoxComponent = Qt.createComponent("MyTextBox.qml")
comboBoxComponent = Qt.createComponent("MyCombobox.qml")
twoStateBoxComponent = Qt.createComponent("CheckBoxSwitcher.qml")
sliderComponent = Qt.createComponent("MySlider.qml")
}
这些组件在 listview 委托中使用如下:
componentContainer.sourceComponent = comboBoxComponent
componentContainer.item.comboItems = displayValues
componentContainer.item.parameterName = settingName
componentContainer.item.width = ScriptStyles.parameterControlWidth
此代码在函数“Component.onCompleted”中执行。这里的“componentContainer”是“Loader”元素。 在我隐藏列表视图之前一切正常(将高度和不透明度更改为 0。并且还尝试设置 0.05 值)。像这样:
states: [
State {
name: "collapsed"
PropertyChanges {
target: listView
height: 0
opacity: 0
}
]
展开后,一些控件保持折叠前的状态,而一些控件则重新创建(折叠时执行破坏)。 我怎样才能防止我的对象被破坏?
【问题讨论】:
-
你应该回答你自己的问题(或删除它)。
标签: listview dynamic components qml