使用textinput面对Qml列表视图的问题

时间:2015-07-24 13:40:02

标签: qt listview qml textinput qt-quick

我是QML的新手,我在ListViewTextInput类型中遇到问题。

我正在尝试创建ListView delegate包含TextInput的{​​{1}}。我能够正确设置ListView的当前选择项,但包含的TextInput没有得到焦点,即光标没有定位在它上面。这是我目前的代码:

import QtQuick 1.1

Item{
    width:360
    height:360

    Rectangle{
        id:title
        //bottom: parent.bottom
        //      anchors.
        anchors.top:parent.top
        height: 40
        width: 360
        border.width: 2
        color: "grey"
        Text {
            id: txt
            //bottom: parent.bottom
            height: title.height
            width:title.width
            text:"This is the List View"
            anchors.centerIn: parent                  
        }
    }

    Component{
        id:comp

        Item{   
            id:rect
            width: 100
            height: 50

            Column{
                anchors.centerIn: parent

                TextInput{
                    x:1
                    id:textinputid1
                    focus: true
                    anchors.top: parent.top
                    cursorPosition: 0
                    font.pixelSize: 12
                    text:"hello"

                }
            }
        }
    }

    Rectangle{
        id:listrect
        width: parent.width
        height: parent.height - 50
        x: 30
        anchors.top: title.bottom

        ListView{
            id:list
            anchors.top: title.bottom
            width: parent.width
            height: parent.height - 20
            focus: true
            model: mymodel
            delegate: comp

            highlight: Rectangle{color: "green";radius: 5}          
        }  
    }

    ListModel{
        id:mymodel
        ListElement{
            name:"Chan"
        }
        ListElement{ 
            //name:"Chan2"
        }
        ListElement{
            //name:"Chan3"
        }
        ListElement{
            name:"Chan3"
        }
        ListElement{
            name:"Chan3"
        }
        ListElement{
            name:"Chan3"
        }
        ListElement{
            name:"Chan3"
        }
        ListElement{
            name:"Chan3"
        }
        ListElement{
            name:"Chan3"
        }
        ListElement{
            name:"Chan3"
        }
        ListElement{
            name:"Chan3"
        }
        ListElement{
            name:"Chan3"
        }
        ListElement{
            name:"Chan3"
        }
        ListElement{
            name:"Chan3"
        }
        ListElement{
            name:"Chan3"
        }
        ListElement{
            name:"Chan3"
        }   
    }  
}

1 个答案:

答案 0 :(得分:0)

为什么不能使用QtQuick.2?另外,下次请在粘贴之前格式化您的代码。删除注释代码,不必要的空行和空格。仅发布与问题相关的代码。

至于你的问题,试试这个:

Component{
    id:comp

    Item{
        id:rect
        property int currentIndex: index // store item index
        Column{
            TextInput {
                //focus: true // not needed
                onFocusChanged: {
                    if(focus)
                        list.currentIndex = rect.currentIndex; // set list current index when TextInput focused
                }
            }
        }
    }
}