我将尝试用一个简单的例子来解释我的问题。
我有一个 Rectangle A
和一个 Rectangle B
。我希望当您单击 A
时,view
(例如 listView
)会加载到 B
中。如果您再次单击 A
,listView
将消失。
我知道它与 class Loader
有关,但我无法使其正常工作。
Rectangle {
id: A
MouseArea {
anchors.fill: parent
onClicked {
//Load or Close listView
}
}
}
Rectangle {
id:B
//here load or unload the listView
}
谁能提供一个简单的例子?
注意:我不想使用 visible
,因为我需要在单击矩形时刷新 data
。
最佳答案
这是一个简单的例子:
Rectangle {
id: A
MouseArea {
anchors.fill: parent
onClicked {
ld.active = !ld.active
}
}
}
Rectangle {
id:B
Loader {
id: ld
sourceComponent: comp
active: false
anchors.fill: parent
}
Component {
id: comp
Rectangle { //replace this with your listview
color: blue
}
}
}
当您点击矩形 A
时,加载程序的状态发生变化,组件 comp
加载/卸载。
关于qt - 如何在点击时加载 QML 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43470596/