我有这个使用 QStatemachine 来管理 UI 的 Projekt,我想在其中添加自定义列表。UI 应该只由关键事件操作。据我了解,我需要 qml 端的 ListView 。
ListView 的委托只对鼠标输入或直接键输入做出反应。但是我使用 C++ 中的 QStatemachine 来操作它,因为它正在处理 UI 的所有关键事件。当我按下右箭头键时,我想要发生的事情是将列表向左移动。
(currentItem 总是在屏幕中间。)
所以我的 ListView 目前看起来像这样。
Component {
id:myDelegation
Item {
x: 50
width: 80
height: 60
Rectangle {
width: 60
height: 60
Text {
text: name
anchors.centerIn: parent
}
color: parent.ListView.isCurrentItem ? "red" : "steelblue";
scale: parent.ListView.isCurrentItem ? 1.5 : 1;
}
}
}
ListView {
id: listView1
x: 0
y: 50
width: 1920
height: 214
orientation: ListView.Horizontal
spacing: 4
model: TileList{}
delegate: myDelegation
preferredHighlightBegin: width / 2 - 10
preferredHighlightEnd: width / 2 + 10
highlightRangeMode: ListView.StrictlyEnforceRange
}
c++ Statemachine 是一个 QStatemachine,它向 qml 发送信号。
如何将信号绑定到 Listview 的委托?