如何通过 QML 中的自定义模型通过索引获取特定值?

问题描述 投票:0回答:1

我正在尝试根据 UserModel 中的 index 获取特定用户的名称(根据 wiki,这是一个列表模型)。

当我尝试使用

console.log("username: {" + userModel.get(userList.currentSelected).name+ "}")
打印名称时,出现以下错误:

Main.qml:56:TypeError:类型错误

SDDM 存储库https://github.com/sddm/sddm/wiki/Theming

我尝试过

userModel.get(0)
userModel.at(0)
userModel[0]
,但这些都不适合我。

主要.qml
import QtQuick 2.15
import SddmComponents 2.0

Item {
    id: root
    focus: true
    Keys.onPressed: (event)=> {
        console.log("Object entries:" + Object.entries(userModel));
        console.log(userModel.itemData(userModel.index(0, 0)));
        console.log("username: {" + userModel.get(0).name+ "}")
    }
}

编辑:这是

object.entries
的输出:

[[objectName,],[lastIndex,0],[lastUser,],[count,4],[disableAvatarsThreshold,7],[containsAllUsers,true],[objectNameChanged,function() { [原生代码] }] ,[dataChanged,function() { [原生代码] }],[headerDataChanged,function() { [原生代码] }],[layoutChanged,function() { [原生代码] }],[layoutAboutToBeChanged,function() { [本机代码] }],[rowsAboutToBeInserted,function() { [本机代码] }],[rowsInserted,function() { [本机代码] }],[rowsAboutToBeRemoved,function() { [本机代码] }],[ rowsRemoved,function() { [本机代码] }],[columnsAboutToBeInserted,function() { [本机代码] }],[columnsInserted,function() { [本机代码] }],[columnsAboutToBeRemoved,function() { [本机代码] }],[columnsRemoved,function() { [本机代码] }],[modelAboutToBeReset,function() { [本机代码] }],[modelReset,function() { [本机代码] }],[rowsAboutToBeMoved, function() { [本机代码] }],[rowsMoved,function() { [本机代码] }],[columnsAboutToBeMoved,function() { [本机代码] }],[columnsMoved,function() { [本机代码] }],[提交,function() { [本机代码] }],[恢复,function() { [本机代码] }],[resetInternalData,function() { [本机代码] }],[hasIndex,function( ) { [本机代码] }],[index,function() { [本机代码] }],[parent,function() { [本机代码] }],[sibling,function() { [本机代码] }] ,[rowCount,function() { [本机代码] }],[columnCount,function() { [本机代码] }],[hasChildren,function() { [本机代码] }],[data,func tion() { [原生代码] }],[setData,function() { [原生代码] }],[headerData,function() { [原生代码] }],[fetchMore,function() { [原生代码] }],[canFetchMore,function() { [原生代码] }],[flags,function() { [原生代码] }],[match,function() { [原生代码] }]]

qt qml qtquick2
1个回答
0
投票

正如@smr在评论中所述,

userModel.data(userModel.index(0,0), 257)
是正确的函数。

QAbstractItemModel::数据 Qt::ItemDataRole

© www.soinside.com 2019 - 2024. All rights reserved.