Qt qml动态小部件的正确体系结构是什么?
这个问题很难解释。但看看下面的图片: 例如,存在一个列表小部件,当接收到悬停状态时,该小部件中的项目会动态地更改内容。为简单起见,项目内容取决于某组布尔值 使用QWidgets,当一些信号升高时,可以通过检查bool值和显示/隐藏依赖组件来实现它的简单性 但它是如何通过qml实现的呢Qt qml动态小部件的正确体系结构是什么?,qt,qml,Qt,Qml,这个问题很难解释。但看看下面的图片: 例如,存在一个列表小部件,当接收到悬停状态时,该小部件中的项目会动态地更改内容。为简单起见,项目内容取决于某组布尔值 使用QWidgets,当一些信号升高时,可以通过检查bool值和显示/隐藏依赖组件来实现它的简单性 但它是如何通过qml实现的呢 正如我正确理解的那样,qml gui是一种静态gui,我应该设置不同的gui进行切换。但在所描述的示例中,我收到了组合爆炸。我不确定我是否正确回答了您的问题,但让我们从示例开始 ListModel {
正如我正确理解的那样,qml gui是一种静态gui,我应该设置不同的gui进行切换。但在所描述的示例中,我收到了组合爆炸。我不确定我是否正确回答了您的问题,但让我们从示例开始
ListModel {
id: listModel
ListElement {
name: "John"
age: 32
gender: "male"
}
ListElement {
name: "Kate"
age: 23
gender: "female"
}
}
ListView {
anchors.fill: parent
model: listModel
spacing: 5
delegate: Rectangle {
color: "#24F5F2"
width: parent.width
height: 50
Text {
id: nameText
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
text: name
}
Text {
id: ageOrGenderText
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.right: parent.right
text: gender
}
MouseArea {
anchors.fill: parent
hoverEnabled: true
onEntered: {
ageOrGenderText.text = age
}
onExited: {
ageOrGenderText.text = gender
}
}
}
}
此外,您还可以创建一个单独的布尔属性,并在“输入/退出”时将其设置为true/false,并对该属性进行QML绑定
property bool hovered: false
Text {
id: textItem
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.right: parent.right
text: hovered ? "age" : "gender" // or CppBackend.GetValue(hovered)
}
MouseArea {
anchors.fill: parent
hoverEnabled: true
onEntered: {
textItem = true;
}
onExited: {
textItem = false;
}
}