qfiledialog提供了乙個函式---setproxymodel。。就是用這個來玩了。就是override filteracceptsrow的虛函式,裡面定製自己的過濾需求。返回bool 下面就是判斷是否是目錄,只顯示目錄資料夾。
1#ifndef proxy_model_h
2#define proxy_model_h
34 #include 567
class filefilterproxymodel : public
qsortfilterproxymodel811
12protected:13
virtual
bool filteracceptsrow(int source_row, const qmodelindex& source_parent) const;14
};15
1617
#endif
#include "proxymodel.h"#include #include bool filefilterproxymodel::filteracceptsrow(int sourcerow, const qmodelindex &sourceparent) const
else
return false;
// uncomment to execute default implementation
//return qsortfilterproxymodel::filteracceptsrow(sourcerow, sourceparent);
}
1qfiledialog dialog;
2 filefilterproxymodel* proxymodel = new
filefilterproxymodel();
dialog.setoption(qfiledialog::dontusenativedialog);
3dialog.setproxymodel(proxymodel);
4 dialog.exec();
references:
Android高階篇 自定義Dialog
很多時候,我們需要自定義乙個dialog來體現程式的多樣性。這種情況我們一般會想到使用乙個activity設定它為theme.dialog的樣式來實現。這樣的話,我們可以自定義activity的xml,接受各種觸發事件。同時,如果只是在manifest裡面設定activity的屬性為 android...
python高階 自定義庫函式
在python使用過程中,在不同的專案裡,常常會出現頻繁地自定義同乙個函式的情況。為了解決這個問題,我們可以選擇建立乙個自定義的庫,並將其新增到系統路徑中 具體操作如下 在任意位置新建乙個專案my libs,並在其中新建python檔案my lib1和my lib2,將需要自定義的函式在my lib...
自定義 如何自定義協議
何為自定義協議,其實是相對標準協議來說的,這裡主要針對的是應用層協議 常見的標準的應用層協議如http ftp smtp等,如果我們在網路通訊的過程中不去使用這些標準協議,那就需要自定義協議,比如我們常用的rpc框架 dubbo,thrift 分布式快取 redis,memcached 等都是自定義...