Qt / QML如何在文本元素中包装文本,在Listview中

时间:2016-04-21 11:54:19

标签: android qt qml

我有ListView,如:

 Rectangle {
            width:(parent.width)
            height: (parent.height/3)*2
            border.color: "lightsteelblue"
            border.width: 2
            color:"lightgrey"
            radius: 3
            ListView {
                id:malzemelist
                spacing: dp(6)

                clip:true
                orientation:ListView.Vertical
               flickableDirection: Flickable.VerticalFlick
               boundsBehavior: Flickable.StopAtBounds
                anchors.fill: parent
                model:malzememodel
                delegate: malzemecomp
                focus:true

            }
        } 

我有一个模型。我已经填充了我的模型当点击按钮时 model.append({mytext:" blalaladdd"})。我已将mytext设置为delage中的文本。我可以工作,但如果我的文本太长,换行模式不起作用。通过我设置wrapmode的方式:Text.Wrap.What是什么问题...

mydelegate代码是:

   Component {

        id:malzemecomp

        RowLayout
        {
            height: dp(16)
            width: parent.width
            Text {
                id: malzemeresultxt
                font.pixelSize: dp(12)
                text:malzeme
                wrapMode: Text.Wrap
                width: parent.width-dp(17)


            }
            Image {
                id: maldeleteimg
                 height: dp(16)
                 width:  dp(16)
                fillMode: Image.PreserveAspectFit
                source: "/Images/rejectmalzeme.png"
                Layout.alignment: Qt.AlignRight

                MouseArea {
                    anchors.fill: parent
                     onClicked: {
                         console.log(malzememodel.count+"/"+index);
                          TaskResult.taskresult.malzemeler.splice(index,1);
                          malzememodel.remove(index);
                          var seri=TaskResult.taskresult.serilaze();
                          console.log(seri);

                     }
                }
            }
        }

    }

1 个答案:

答案 0 :(得分:0)

使用Layout.xxx时,您应该使用width属性而不是height / anchors / RowLayout。从width删除您的Text媒体资源,并使用之前宽度值的Layout.maximumWidth,或者只放Layout.fillWidth: true

Here is some working QML snippet