1. 程式人生 > >使用QSortFilterProxyModel後多了很多空白的row

使用QSortFilterProxyModel後多了很多空白的row

我希望對model可以進行排序和過濾,然後加了QSortFilterProxyModel,加完後發現排序是OK的,但是總是多一個空白的row。
在這裡插入圖片描述
如果不使用QSortFilterProxyModel,則是好的。
在這裡插入圖片描述
目前還不知道問題在哪裡
發現一個特點是,我不在增加資料後,白色的部分就會消失。
發現一個寫QTreeView的專欄:QTreeView使用總結
這篇文章(QSortFilterProxyModel實現QTreeView的過濾的缺點和改進)解決了我另外一個問題,但是我還希望搜尋出來的結果自動展開。

好幾天過去了,這個問題還是沒有解決,目前可以描述為

當我用QtConcurrent::run跑一個任務給mode加資料時,view正常,但是當我給Qt model加上QSortFilterProxyModel時,views上會出現空白的行。
我不清楚是怎麼回事,以為是併發讀寫問題,然後我加了讀寫鎖,空白行依然存在。
於是嘗試著用訊號槽,發現不管是QueuedConnection,還是DirectConnection連線方式,都會出現空白行。
接著我又試了在UI執行緒中給model加資料,發現如果用訊號槽,還是會出現空白行,如果是直接呼叫函式,則不會出現空白行。
目前不知道問題在哪,我的程式碼是在Qt Simple Tree Model上改的,主要功能就是遍歷一下目錄