Firstly what do you mean by "...narrow date range..." if just data values change then you should be using dataChanged() and not layoutChanged(), and if data structure / layout is changing then use layoutChanged() but read the Qt Docs, it clearly specifies the requirement to emit layoutAboutToBeChanged() and others steps to follow, not sure if you did those. Also double check startIndex and endIndex of dataChanged() signal, it is not much difficult to get them wrong. Further emiting layoutChanged() surely should trigger all the views and corresponding proxy models to refresh, as the term itself means "layout has changed", old layout is not valid. I would suggest to check dataChanged() indexes again.