Решение
В Qt можно было бы использовать функциональность, предоставляемую QString , чтобы удалить текст за скобками, включая сами скобки, разбив остальную часть текста.в сегменты, разделенные пробелами, например:
foreach (const QString &str, fileTypes)
extensions.append(str.split("(").last().chopped(1).split(" "));
, где fileTypes
и extensions
- списки входной и выходной строк соответственно.
Пример
Вот рабочаяПример, который я написал для того, чтобы вы могли проверить предложенное решение:
#include <QDebug>
int main(int /*argc*/, char /**argv[]*/)
{
QStringList fileTypes({
"Image files (*.png *.xpm *.jpg)",
"Text files (*.txt)",
"Any files (*)"
});
QStringList extensions;
foreach (const QString &str, fileTypes)
extensions.append(str.split("(").last().chopped(1).split(" "));
qDebug() << extensions;
return 0;
}
Результат
Как написано, данный пример дает следующий результат:
("*.png", "*.xpm", "*.jpg", "*.txt", "*")