16

setNameFilters が期待どおりに機能しないので、間違って使用しているかどうか、またはこれが Qt のバグであるかどうかを誰かが説明できる場合:

ここに私のコードサンプルがあります:

QDir export_folder("C:\path");
QStringList fileList = export_folder.setNameFilters(QStringList()<<"*.exe");

処理後の fileList には文字列 "test.exe1" が含まれます

fileList には、拡張子が .exe ではなく .exe* のファイルのみが含まれることが期待されます。

.exe よりも長いファイル拡張子が必要な場合"*.exe*"は、フィルターとして入れることを期待します。

誰かが明確にするのを助けることができますか、または事後に手動で fileList を処理する必要がありますか?

4

2 に答える 2

23

手始めに、戻りsetNameFiltersませんQStringList、何も返しません。コードは次のようになります。

QDir export_folder("C:\\path");
export_folder.setNameFilters(QStringList()<<"*.exe");
QStringList fileList = export_folder.entryList();

Qt 5.0.1を使用するLinuxでは、フィルタリングは期待どおりに機能します(「exe2」で終わるファイルは返されません)。

于 2013-03-21T16:55:50.967 に答える
4

また、複数の種類の拡張子を持つファイルを表示したい場合は、次のようにすることができます。

export_folder.setNameFilters( QStringList() << "*.exe" << "*.pdf" << "*.docx" << "*.jpg" );
于 2014-08-01T05:23:57.913 に答える