天天看點

QDirModel使用QSortFilterProxyModel過濾指定磁盤和非系統盤

由于項目中需要,需要過濾掉指定某個磁盤,并且要對顯示出來的非本地系統盤符過濾掉,隻保留CDEF等盤符。網上沒有可供參考的資料,折騰了很久,終于搞定了,現在寫下來以供後人借鑒。

一、過濾指定磁盤

過濾指定磁磁盤,我們可以通過QSortFilterProxyModel自帶的setFilterRegExp過濾。

二、過濾非系統盤符

首先,需要獲得各個磁盤卷名。

在獲得了各個磁盤的盤符後,就要過濾掉非系統盤符,用QList存放系統盤符,因為非系統盤可能有多個。

在儲存非系統盤符後,就需要在界面上顯示出來,我們使用QSortFilterProxyModel這種過濾模型,主要重寫裡面的filterAcceptsRow方法。

至此,就可以在界面上看到指定過濾的盤符和隻顯示的系統盤符了,趕緊嘗試下吧。