gpt4 book ai didi

qt - QML ListView 当前项目不随击键或鼠标改变

转载 作者:行者123 更新时间:2023-12-05 08:58:22 26 4
gpt4 key购买 nike

我有一个非常简单的 ListView。

ListView {
id: logListView
anchors.fill: parent
model: LogEntryListModel

delegate:
Text {
text: "Log Item: " + timestamp + ", " + verb
}
highlight: Rectangle { color: "lightsteelblue"; radius: 5 }
focus: true
clip: true
}

它很好地显示了模型并突出显示了第一项。当我单击另一个项目或使用箭头键时,它不会移动突出显示。我知道如何通过添加事件处理程序来手动控制突出显示的项目,但我在文档中看到了对 selectedItem 自动处理的引用。我想知道:

QML 是否提供自动更改所选项目突出显示的功能?我需要添加什么才能打开它?

最佳答案

键盘处理是自动完成的:

import QtQuick 2.0
import QtQuick.Controls 1.1

Rectangle {
width: 400
height: 400

ListView {
id: logListView
anchors.fill: parent
model: 10

delegate: Text {
text: "Log Item: " + modelData
}
highlight: Rectangle {
color: "lightsteelblue";
radius: 5
}
focus: true
clip: true
}
}

如果使用向上和向下箭头键不会为您更改所选项目,则使用上面的代码,那么这是一个错误。

然而,默认情况下不处理使用鼠标选择项目;只有轻弹/拖动列表是。不过,添加起来很容易:

import QtQuick 2.0
import QtQuick.Controls 1.1

Rectangle {
width: 400
height: 400

ListView {
id: logListView
anchors.fill: parent
model: 10

delegate: Text {
text: "Log Item: " + modelData

MouseArea {
anchors.fill: parent
onClicked: logListView.currentIndex = index
}
}
highlight: Rectangle {
color: "lightsteelblue";
radius: 5
}
focus: true
clip: true
}
}

关于qt - QML ListView 当前项目不随击键或鼠标改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23916510/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com