Qt 5.3.1表格视图未更新
最近,我从Qt5.3.0升级到Qt5.3.1,注意到我的TableView在对代理模型排序时不再更新,它使用QSortFilterProxy模型作为模型 您可以通过使用示例代码看到这一点 如果使用Qt5.3.0编译,表格将进行排序,但如果使用Qt5.3.1编译,模型将进行排序(使用qDebug语句验证),但TableView不会更新。这在Windows和Linux上都会发生 为了解决这个问题,我必须在调用此->sort()之后添加emit layoutChanged() 我的问题是,是否有其他人注意到了这一点,并发现这是出于设计还是缺陷Qt 5.3.1表格视图未更新,qt,tableview,qml,qt-quick,Qt,Tableview,Qml,Qt Quick,最近,我从Qt5.3.0升级到Qt5.3.1,注意到我的TableView在对代理模型排序时不再更新,它使用QSortFilterProxy模型作为模型 您可以通过使用示例代码看到这一点 如果使用Qt5.3.0编译,表格将进行排序,但如果使用Qt5.3.1编译,模型将进行排序(使用qDebug语句验证),但TableView不会更新。这在Windows和Linux上都会发生 为了解决这个问题,我必须在调用此->sort()之后添加emit layoutChanged() 我的问题是,是否有其他人
谢谢我做了一些进一步的挖掘,发现了一个Qt错误,正是针对这个问题 在Qt5.3.1中,解决了另一个错误,它将QQMLDelegateModel更改为发出layoutChanged(QList,QAbstractItemModel::LayoutChangedHint),而不是简单地发出layoutChanged()。TableView似乎没有监听layoutChanged()信号的参数化版本,这就是为什么我可以通过在调用sort()后手动发出layoutChanged()来解决这个问题 这显然已由Qt 5.3.2中的QTBUG-39492修复