Qt 如何读取main.qml中的listmodel角色属性?
在main.qml中,我在每次函数addItem()调用时动态更新listModel。在这里,我设置了两个角色;按钮和源。OneText.qml文件有一个文本字段。实际上,在将buttonTypeRole和source插入listModel之后,我想知道source是否被截断 是否有任何方法可以读取main.qml文件中的OneText.qml文本截断属性 main.qmlQt 如何读取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
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
检查是否发生了这种情况。前一个问题可能有助于: