qml中listView模型刷新,解决index重置到开头

记录一下,以备以后查阅

property int  conY: 0
function qmlListModelUpdata()
    {
        comboBoxContentListView.contentY = conY
    }

ListView
{
    id:list
    onContentYChanged:
    {
 
     if(contentY !=0)
     {
         conY = contentY
     }
 
    }
}

//onListModelChanged:
//{
//    list.contentY = conY
//}

 当用c++端模型时,有些界面上的显示操作,会由c++端来控制,这时就会使用到模型刷新,导致listview的index重置到开头。

如果想要保持界面位置维持不动,需要用一个变量conY来保存刷新前的位置。刷新后重新把contentY的值赋给listview。(contentY保存当前listview最顶端位置)

如果发出模型刷新信号的c++端和qml同属于一个界面时,可以直接使用信号和槽。

如果qml端是一个qml又附在一个qml上时,则使用function函数作为qml的属性句柄引出去,供下层界面调用,使用方法为,在下层槽函数中直接调用。(创建qml的id名.function名)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值