天天看點

Qt之QHeaderView自定義排序(QSortFilterProxyModel)簡述效果處理大小顯示QAbstractTableModelQSortFilterProxyModel提示

對以上節的排序,我們衍伸了兩點:

把一個字元串前面的資料按照字元串比較,而後面的資料按照整形比較。

将整形顯示為字元串,而排序依然正常呢。

為了分别描述,這裡我們先解決問題1。

<a href="#%e7%ae%80%e8%bf%b0">簡述</a>

<a href="#%e6%95%88%e6%9e%9c">效果</a>

<a href="#%e5%a4%84%e7%90%86%e5%a4%a7%e5%b0%8f%e6%98%be%e7%a4%ba">處理大小顯示</a>

<a href="#qabstracttablemodel">qabstracttablemodel</a>

<a href="#qsortfilterproxymodel">qsortfilterproxymodel</a>

<a href="#%e6%8f%90%e7%a4%ba">提示</a>

Qt之QHeaderView自定義排序(QSortFilterProxyModel)簡述效果處理大小顯示QAbstractTableModelQSortFilterProxyModel提示

這裡隻修改了一行代碼,其它代碼和上節相同。

qsortfilterproxymodel是用來排序和過濾的,不能單獨使用,它隻是一個“代理”,真正的資料需要qabstracttablemodel提供,可以重寫lessthan來實作自己的排序算法。

效果圖中,隻針對名稱自定義排序了,大小隻進行了轉換,還尚未排序,因為存在多種解決方案,下節我會将方案一一列出,然後進行對比。

繼續閱讀