Sur cette page

QStringList Class

La classe QStringList permet de gérer une liste de chaînes de caractères. En savoir plus...

En-tête : #include <QStringList>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake : QT += core

Remarque : toutes les fonctions de cette classe sont réentrantes.

Fonctions publiques

QStringList(const QList<QString> &other)
QStringList(const QString &str)
QStringList(QList<QString> &&other)
bool contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool contains(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool contains(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
(since 6.9) QStringList filter(const QLatin1StringMatcher &matcher) const
QStringList filter(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QStringList filter(const QRegularExpression &re) const
(since 6.7) QStringList filter(const QStringMatcher &matcher) const
(since 6.7) QStringList filter(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QStringList filter(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype indexOf(QLatin1StringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype indexOf(QStringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype indexOf(const QString &str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype indexOf(const QRegularExpression &re, qsizetype from = 0) const
QString join(const QString &separator) const
QString join(QChar separator) const
QString join(QLatin1StringView separator) const
QString join(QStringView separator) const
qsizetype lastIndexOf(QLatin1StringView str, qsizetype from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype lastIndexOf(QStringView str, qsizetype from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype lastIndexOf(const QString &str, qsizetype from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype lastIndexOf(const QRegularExpression &re, qsizetype from = -1) const
qsizetype removeDuplicates()
QStringList &replaceInStrings(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QStringList &replaceInStrings(const QRegularExpression &re, const QString &after)
QStringList &replaceInStrings(QStringView before, QStringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QStringList &replaceInStrings(QStringView before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QStringList &replaceInStrings(const QString &before, QStringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
void sort(Qt::CaseSensitivity cs = Qt::CaseSensitive)
QStringList operator+(const QStringList &other) const
QStringList &operator<<(const QString &str)
QStringList &operator<<(const QList<QString> &other)
QStringList &operator<<(const QStringList &other)
QStringList &operator=(const QList<QString> &other)
QStringList &operator=(QList<QString> &&other)

Description détaillée

QStringList est une classe de type « QList » dotée de quelques fonctions pratiques supplémentaires pour la gestion des listes de chaînes de caractères. À l’instar de QList, QStringList est implicitement partagée. Elle offre un accès rapide basé sur l’index ainsi que des opérations d’insertion et de suppression rapides. Le passage de listes de chaînes en tant que paramètres de valeur est à la fois rapide et sûr.

Toutes les fonctionnalités d’ QList s’appliquent également à QStringList. Par exemple, vous pouvez utiliser isEmpty() pour vérifier si la liste est vide, et vous pouvez appeler des fonctions telles que append(), prepend(), insert(), replace(), removeAll(), removeAt(), removeFirst(), removeLast() et removeOne() pour modifier une QStringList.

Initialisation

Le constructeur par défaut crée une liste vide. Vous pouvez utiliser le constructeur avec liste d’initialisation pour créer une liste contenant des éléments :

    QStringList fonts = { "Arial", "Helvetica", "Times" };

Ajout de chaînes

Des chaînes de caractères peuvent être ajoutées à une liste à l’aide des fonctions ` insert()`, ` append()`, ` operator+=()` et ` operator<<()`.

operator<<() permet d’ajouter facilement plusieurs éléments à une liste :

    fonts << "Courier" << "Verdana";

Itération sur les chaînes de caractères

Voir Itération sur les conteneurs.

Manipulation des chaînes

QStringList fournit plusieurs fonctions permettant de manipuler le contenu d'une liste. Vous pouvez concaténer toutes les chaînes d'une liste en une seule chaîne (avec un séparateur facultatif) à l'aide de la fonction ` join()`. Par exemple :

    QString str = fonts.join(", ");
     // str == "Arial, Helvetica, Times, Courier"

L'argument de la fonction `join` peut être un caractère unique ou une chaîne de caractères.

Pour diviser une chaîne en une liste de chaînes, utilisez la fonction ` QString::split()` :

    QStringList list;
    list = str.split(',');
     // list: ["Arial", "Helvetica", "Times", "Courier"]

L'argument de la fonction `split` peut être un caractère unique, une chaîne de caractères ou une fonction ` QRegularExpression`.

De plus, la fonction ` operator+()` vous permet de concaténer deux listes de chaînes en une seule. Pour trier une liste de chaînes, utilisez la fonction ` sort()`.

QString La classe `list` fournit également la fonction ` filter()`, qui vous permet d'extraire une nouvelle liste ne contenant que les chaînes de caractères comportant une sous-chaîne particulière (ou correspondant à une expression régulière donnée) :

    QStringList monospacedFonts = fonts.filter(QRegularExpression("Courier|Fixed"));

La fonction ` contains()` indique si la liste contient une chaîne donnée, tandis que la fonction ` indexOf()` renvoie l’index de la première occurrence de la chaîne donnée. La fonction ` lastIndexOf()`, quant à elle, renvoie l’index de la dernière occurrence de la chaîne.

Enfin, la fonction replaceInStrings() appelle la fonction QString::replace() tour à tour sur chaque chaîne de la liste. Par exemple :

    QStringList files;
    files << "$QTDIR/src/moc/moc.y"
          << "$QTDIR/src/moc/moc.l"
          << "$QTDIR/include/qconfig.h";

    files.replaceInStrings("$QTDIR", "/usr/lib/qt");
    // files: [ "/usr/lib/qt/src/moc/moc.y", ...]

Voir également QString.

Documentation sur les fonctions membres

QStringList::QStringList(const QList<QString> &other)

Crée une copie de ` other`.

Cette opération s'effectue en temps constant, car QStringList est implicitement partagé. Cela rend très rapide le retour d'un QStringList depuis une fonction. Si une instance partagée est modifiée, elle sera copiée (copie à l'écriture), ce qui prend un temps linéaire.

Voir également operator=().

QStringList::QStringList(const QString &str)

Crée une liste de chaînes contenant la chaîne indiquée, str. Il est facile de créer des listes plus longues comme ceci :

    QStringList longerList = (QStringList() << str1 << str2 << str3);

Voir aussi append().

QStringList::QStringList(QList<QString> &&other)

Constructions « move » tirées de QList<QString>.

Une fois la construction réussie, other sera vide.

Il s'agit d'une fonction surchargée.

[noexcept] bool QStringList::contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie « true » si la liste contient la chaîne « str » ; sinon, renvoie « false ».

Si cs est défini sur Qt::CaseSensitive (valeur par défaut), la comparaison de chaînes tient compte de la casse ; sinon, elle ne tient pas compte de la casse.

Voir également indexOf(), lastIndexOf() et QString::contains().

[noexcept] bool QStringList::contains(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie « true » si la liste contient la chaîne Latin-1 telle qu’elle est interprétée par « str » ; sinon, renvoie « false ».

Si cs est égal à Qt::CaseSensitive (valeur par défaut), la comparaison des chaînes tient compte de la casse ; sinon, elle ne tient pas compte de la casse.

Il s’agit d’une fonction surchargée.

Voir également indexOf(), lastIndexOf() et QString::contains().

[noexcept] bool QStringList::contains(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie « true » si la liste contient la chaîne « str » ; sinon, renvoie « false ».

Si cs est égal à Qt::CaseSensitive (valeur par défaut), la comparaison des chaînes tient compte de la casse ; sinon, elle ne tient pas compte de la casse.

Il s'agit d'une fonction surchargée.

[since 6.9] QStringList QStringList::filter(const QLatin1StringMatcher &matcher) const

Renvoie une liste de toutes les chaînes de caractères correspondant à matcher (c'est-à-dire pour lesquelles matcher.indexIn() renvoie un index >= 0).

L'utilisation de ` QLatin1StringMatcher ` peut s'avérer plus rapide lors de recherches dans de grandes listes et/ou dans des listes contenant des chaînes de caractères longues (le meilleur moyen de le vérifier est d'effectuer des tests de performance).

Par exemple :

    QStringList veryLargeList;
    QLatin1StringMatcher matcher("Street"_L1, Qt::CaseInsensitive);
    QStringList filtered = veryLargeList.filter(matcher);

Cette fonction a été introduite dans Qt 6.9.

Voir également contains() et filter(const QStringMatcher &).

QStringList QStringList::filter(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie une liste de toutes les chaînes contenant la sous-chaîne « str ».

Si cs est défini sur Qt::CaseSensitive (valeur par défaut), la comparaison des chaînes tient compte de la casse ; dans le cas contraire, elle ne tient pas compte de la casse.

    QStringList list;
    list << "Bill Murray" << "John Doe" << "Bill Clinton";

    QStringList result;
    result = list.filter("Bill");
    // result: ["Bill Murray", "Bill Clinton"]

Cela équivaut à

    QStringList result;
    for (const auto &str : std::as_const(list)) {
        if (str.contains("Bill"))
            result += str;
    }

Voir aussi contains().

QStringList QStringList::filter(const QRegularExpression &re) const

Renvoie une liste de toutes les chaînes de caractères qui correspondent à l'expression régulière re.

Il s'agit d'une fonction surchargée.

[since 6.7] QStringList QStringList::filter(const QStringMatcher &matcher) const

Renvoie une liste de toutes les chaînes de caractères correspondant à matcher (c'est-à-dire pour lesquelles matcher.indexIn() renvoie un index >= 0).

L'utilisation d'un ` QStringMatcher ` peut s'avérer plus rapide lors de recherches dans des listes volumineuses et/ou contenant des chaînes de caractères longues (le meilleur moyen de le vérifier est d'effectuer des tests de performance).

Par exemple :

    QStringList veryLongList;
    QStringMatcher matcher(u"Straße", Qt::CaseInsensitive);
    QStringList filtered = veryLongList.filter(matcher);

Il s’agit d’une fonction surchargée.

Cette fonction a été introduite dans Qt 6.7.

Voir également contains() et filter(const QLatin1StringMatcher &).

[since 6.7] QStringList QStringList::filter(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Il s'agit d'une fonction surchargée.

Cette fonction a été introduite dans Qt 6.7.

QStringList QStringList::filter(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Il s'agit d'une fonction surchargée.

[noexcept] qsizetype QStringList::indexOf(QLatin1StringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

[noexcept] qsizetype QStringList::indexOf(QStringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

[noexcept] qsizetype QStringList::indexOf(const QString &str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie l'index de la première occurrence de ` str ` dans la liste, en effectuant la recherche vers l'avant à partir de l'index ` from`. Renvoie -1 si aucun élément ne correspond.

Si cs est Qt::CaseSensitive (valeur par défaut), la comparaison de chaînes tient compte de la casse ; sinon, elle ne tient pas compte de la casse.

Remarque : le paramètre cs a été ajouté dans Qt 6.7, ce qui signifie que ces méthodes surchargent désormais les méthodes héritées de la classe de base. Auparavant, ces méthodes ne comportaient que deux paramètres. Cette modification est compatible au niveau du code source et le code existant devrait continuer à fonctionner.

Voir aussi lastIndexOf().

qsizetype QStringList::indexOf(const QRegularExpression &re, qsizetype from = 0) const

Renvoie l'index de la première occurrence exacte de ` re ` dans la liste, en effectuant la recherche à partir de l'index ` from`. Renvoie -1 si aucun élément ne correspond.

Il s'agit d'une fonction surchargée.

Voir également lastIndexOf().

QString QStringList::join(const QString &separator) const

Réunit toutes les chaînes de la liste en une seule chaîne, chaque élément étant séparé par le séparateur spécifié separator (qui peut être une chaîne vide).

Voir aussi QString::split().

QString QStringList::join(QChar separator) const

Cette fonction surcharge la méthode ` QStringList::join()`.

QString QStringList::join(QLatin1StringView separator) const

Cette fonction surcharge la méthode ` QStringList::join()`.

QString QStringList::join(QStringView separator) const

Il s'agit d'une fonction surchargée.

[noexcept] qsizetype QStringList::lastIndexOf(QLatin1StringView str, qsizetype from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

[noexcept] qsizetype QStringList::lastIndexOf(QStringView str, qsizetype from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

[noexcept] qsizetype QStringList::lastIndexOf(const QString &str, qsizetype from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie l'index de la dernière occurrence de ` str ` dans la liste, en effectuant la recherche à rebours à partir de l'index ` from`. Si ` from ` est égal à -1 (valeur par défaut), la recherche commence à partir du dernier élément. Renvoie -1 si aucun élément ne correspond.

Si cs est égal à Qt::CaseSensitive (valeur par défaut), la comparaison de chaînes tient compte de la casse ; dans le cas contraire, elle ne tient pas compte de la casse.

Remarque : le paramètre cs a été ajouté dans Qt 6.7 ; ces méthodes surchargent désormais les méthodes héritées de la classe de base. Auparavant, ces méthodes ne comportaient que deux paramètres. Cette modification est compatible au niveau du code source et le code existant devrait continuer à fonctionner.

Voir aussi indexOf().

qsizetype QStringList::lastIndexOf(const QRegularExpression &re, qsizetype from = -1) const

Renvoie l'index de la dernière occurrence exacte de ` re ` dans la liste, en effectuant une recherche à rebours à partir de l'index ` from`. Si ` from ` est égal à -1 (valeur par défaut), la recherche commence à partir du dernier élément. Renvoie -1 si aucun élément ne correspond.

Il s'agit d'une fonction surchargée.

Voir également indexOf().

qsizetype QStringList::removeDuplicates()

Cette fonction supprime les entrées en double d'une liste. Il n'est pas nécessaire que les entrées soient triées. Elles conserveront leur ordre d'origine.

Renvoie le nombre d'entrées supprimées.

QStringList &QStringList::replaceInStrings(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Renvoie une liste de chaînes dans laquelle, pour chaque chaîne, le texte « before » a été remplacé par le texte « after » à chaque occurrence du texte « before ».

Remarque : si vous utilisez un argument « before » vide, l’argument « after » sera inséré avant et après chaque caractère de la chaîne.

Si cs est défini sur Qt::CaseSensitive (valeur par défaut), la comparaison de chaînes tient compte de la casse ; dans le cas contraire, elle ne tient pas compte de la casse.

Par exemple :

    QStringList list;
    list << "alpha" << "beta" << "gamma" << "epsilon";
    list.replaceInStrings("a", "o");
    // list == ["olpho", "beto", "gommo", "epsilon"]

Voir également QString::replace().

QStringList &QStringList::replaceInStrings(const QRegularExpression &re, const QString &after)

Remplace chaque occurrence de l'expression régulière re, dans chacune des chaînes de la liste de chaînes, par after. Renvoie une référence à la liste de chaînes.

Par exemple :

    QStringList list;
    list << "alpha" << "beta" << "gamma" << "epsilon";
    list.replaceInStrings(QRegularExpression("^a"), "o");
    // list == ["olpha", "beta", "gamma", "epsilon"]

Pour les expressions régulières contenant des groupes de capture, les occurrences de \1, \2, …, dans after sont remplacées par la chaîne capturée par le groupe de capture correspondant.

Par exemple :

    QStringList list;
    list << "Bill Clinton" << "Murray, Bill";
    list.replaceInStrings(QRegularExpression("^(.*), (.*)$"), "\\2 \\1");
    // list == ["Bill Clinton", "Bill Murray"]

Il s'agit d'une fonction surchargée.

QStringList &QStringList::replaceInStrings(QStringView before, QStringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Il s'agit d'une fonction surchargée.

QStringList &QStringList::replaceInStrings(QStringView before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Il s'agit d'une fonction surchargée.

QStringList &QStringList::replaceInStrings(const QString &before, QStringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Il s'agit d'une fonction surchargée.

void QStringList::sort(Qt::CaseSensitivity cs = Qt::CaseSensitive)

Trie la liste de chaînes de caractères par ordre croissant.

Si ` cs ` vaut ` Qt::CaseSensitive ` (valeur par défaut), la comparaison des chaînes tient compte de la casse ; sinon, elle ne tient pas compte de la casse.

Le tri est effectué à l'aide de l'algorithme std::sort() de la STL, dont la complexité est en moyenne linéaire-logarithmique, c'est-à-dire O(n log n).

Si vous souhaitez trier vos chaînes dans un ordre arbitraire, pensez à utiliser la classe ` QMap `. Par exemple, vous pouvez utiliser une QMap<QString, QString> pour créer un ordre insensible à la casse (par exemple, avec des clés correspondant aux versions en minuscules des chaînes et des valeurs correspondant aux chaînes elles-mêmes), ou une QMap<int, QString> pour trier les chaînes selon un index entier.

QStringList QStringList::operator+(const QStringList &other) const

Renvoie une liste de chaînes de caractères correspondant à la concaténation de cette liste avec la liste de chaînes de caractères « other ».

Voir aussi append().

QStringList &QStringList::operator<<(const QString &str)

Ajoute la chaîne indiquée, str, à cette liste de chaînes et renvoie une référence à cette liste.

Voir aussi append().

QStringList &QStringList::operator<<(const QList<QString> &other)

Ajoute la liste de chaînes « other » à la liste de chaînes et renvoie une référence à cette dernière.

Il s'agit d'une fonction surchargée.

QStringList &QStringList::operator<<(const QStringList &other)

Ajoute la liste de chaînes « other » à la liste de chaînes et renvoie une référence à cette dernière.

Il s'agit d'une fonction surchargée.

QStringList &QStringList::operator=(const QList<QString> &other)

Opérateur d'affectation de copie issu de QList<QString>. Affecte la liste de chaînes de caractères other à cette liste de chaînes.

À l'issue de l'opération, other et *this seront identiques.

QStringList &QStringList::operator=(QList<QString> &&other)

Opérateur d'affectation « move » issu de QList<QString>. Déplace la liste de chaînes de caractères other vers cette liste de chaînes.

À l'issue de l'opération, other sera vide.

Il s'agit d'une fonction surchargée.

Éléments non membres associés

[alias] QMutableStringListIterator

La définition de type ` QStringListIterator ` fournit un itérateur non-const de style Java pour ` QStringList`.

QStringList fournit à la fois des itérateurs de style Java et des itérateurs de style STL. L'itérateur non constant de style Java est simplement une définition de type pour QMutableListIterator<QString>.

Voir également QStringListIterator et QStringList::iterator.

[alias] QStringListIterator

La définition du type `QStringListIterator` fournit un itérateur `const` de style Java pour ` QStringList`.

QStringList fournit à la fois des itérateurs de style Java et des itérateurs de style STL. L'itérateur const de style Java est simplement une définition de type pour QListIterator<QString>.

Voir également QMutableStringListIterator et QStringList::const_iterator.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.