Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 如何读取main.qml中的listmodel角色属性?_Qt_Listview_Qml_Listmodel - Fatal编程技术网

Qt 如何读取main.qml中的listmodel角色属性?

Qt 如何读取main.qml中的listmodel角色属性?,qt,listview,qml,listmodel,Qt,Listview,Qml,Listmodel,在main.qml中,我在每次函数addItem()调用时动态更新listModel。在这里,我设置了两个角色;按钮和源。OneText.qml文件有一个文本字段。实际上,在将buttonTypeRole和source插入listModel之后,我想知道source是否被截断 是否有任何方法可以读取main.qml文件中的OneText.qml文本截断属性 main.qml function additem() { listModel.insert(tlist.listModel.count

在main.qml中,我在每次函数addItem()调用时动态更新listModel。在这里,我设置了两个角色;按钮和源。OneText.qml文件有一个文本字段。实际上,在将buttonTypeRole和source插入listModel之后,我想知道source是否被截断

是否有任何方法可以读取main.qml文件中的OneText.qml文本截断属性

main.qml

function additem()
{

 listModel.insert(tlist.listModel.count , {"buttonTypeRole":"OneText.qml", "source":editText})
 console.log("model-- "+tlist.listModel.get(sourceIndex).t)
}
listModel和ListView快照:

Item
{
property alias listModel: listModel

ListModel
{
    id:listModel
}

Rectangle
{
    id:listHolder
    border.color: "transparent"
    border.width: 3
    color:"transparent"
    height:560
    width:600
    focus:true

    ListView
    {
        //id:listview
        x:5
        y:5
        spacing:10
        width:700
        height:listHolder.height - 20
        id:list
        boundsBehavior: ListView.StopAtBounds
        model:listModel
        delegate:listComponent
        clip: true
        snapMode:ListView.SnapToItem
    }
}
Component   
{
    id:listComponent
    Rectangle
    {
        //color:"grey"
        width:obj.width
        height:obj.height
        border.color: "red"
        Loader
        {
            id:itemDisplay
            source:buttonTypeRole

        }
    }
}
}
buttonTypeRole:OneText.qml快照

import QtQuick 2.0
import QtQuick.Controls 2.0
Item
{
id:one
height:obj.height
width:obj.width
Text
{
    id:textOne
    height:obj.height
    width:obj.width
    anchors.verticalCenter: parent.verticalCenter
    verticalAlignment: "AlignVCenter"
    anchors.leftMargin: 10
    font.family: obj.fontFamily
    font.bold: obj.fontBoldStyle == "true" ? true : false
    font.pixelSize: obj.fontSize
    text:source
    elide: Text.ElideRight
}
}

我认为这是不可能的。你能详细说明你为什么需要这些信息吗?您的用例可能有不同的方法。我有一个xml文件(字符串列表)&一个data.jason文件,其中包含关于每个字符串的属性信息(widht/height/font/size)。我使用xmlListModel读取.xml文件并显示列表(比如listview id:xmlList),并在每个项上添加了一个按钮名VALIDATE。jason已在cpp文件中解析并为每个字符串创建了一个映射。按下VALIDATE按钮后,我将xmlList项文本发送到cpp,并在qml中获取宽度/高度/字体/大小属性,并绘制一个标签,查看文本是否符合获取的宽度和高度。如果它被截断,我需要从xmlList中删除该列表项。这使您能够完全从C++中测量文本,您所说的“截断”是什么意思?您的意思是要检查文本是否使用省略号?您可以调用
textOne.truncated
检查是否发生了这种情况。前一个问题可能有助于: