我目前有一個搜索按鈕,我想搜索我的模型的特定列。因此,我只想匹配的行顯示在我的tableview中。 我附加了一個QSortFilterProxyModel *對象作爲源視圖,並設置了QStandardItemModel *作爲源。然後用我的搜索按鈕我做了以下連接QSortFilterProxyModel和插槽setFilterFixedString
QObject::connect(ui.lineEditSearch,SIGNAL(textChanged(QString)),proxyModelFilter,SLOT(setFilterFixedString(QString)));
現在我的印象是,在輸入相關的行將返回。然後我意識到我還沒有指定要過濾器代理模型搜索哪些列。 我知道我可以實現一個從QSortFilterProxyModel繼承的類並重新實現它的filterAcceptsRow。我想知道是否有一種方法可以避免創建一個從QSortFilterProxyModel繼承的類,並且只需使用QSortFilterProxyModel類來告知在調用Slot setFilterFixedString時要搜索哪些列?
'filterKeyColumn'允許您搜索單個列或全部(-1)(http://qt-project.org/doc/qt-5.1/qtcore/qsortfilterproxymodel.html#filterKeyColumn-prop)是這樣嗎?你需要,還是你需要多個但不是全部列?那麼你必須繼承,我想。 –
我只需要搜索一列,如果找到該關鍵字,然後顯示匹配的行 – Rajeshwar
這樣做你可以把它作爲答案,所以我可以標記它 – Rajeshwar