Если ваш вопрос заключается в том, как инициализировать QStringList
, в C ++ 11 вы можете использовать список инициализаторов :
const auto filter = QStringList{
QLatin1String("*.png"),
QLatin1String("*.jpeg"),
QLatin1String("*.jpg"),
QLatin1String("*.gif"),
QLatin1String("*.raw") };
filemodel -> setNameFilters( filter );
Если факт, вы можете отбросить явное экземпляр QStringList
и сократить его до:
filemodel -> setNameFilters( {
QLatin1String("*.png"),
QLatin1String("*.jpeg"),
QLatin1String("*.jpg"),
QLatin1String("*.gif"),
QLatin1String("*.raw") } );
Если вы заставляете переводить все строки / дружественные к Юникоду, кроме тех, которые явно отключены (обычный вариант использования для QLatin1String
), Вы можете также рассмотреть определение собственной строки литеральный оператор , чтобы сделать ее более краткой:
inline QLatin1String operator""_QL1( const char* str, std::size_t len )
{ return QLatin1String( str, len ); }
...
filemodel -> setNameFilters( { "*.png"_QL1, "*.jpeg"_QL1, "*.jpg"_QL1,
"*.gif"_QL1, "*.raw"_QL1 } );