Sur cette page

QStringList Class

La classe QStringList fournit une liste de chaînes de caractères. Plus d'informations...

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

Note : 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 en fait juste un QList<QString>. Comme QList, QStringList est implicitement partagée. Elle permet un accès rapide basé sur un index ainsi que des insertions et des suppressions 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 de QList s'appliquent également à QStringList. Par exemple, vous pouvez utiliser isEmpty() pour tester 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. En outre, QStringList fournit quelques fonctions de commodité qui facilitent la manipulation des listes de chaînes de caractères.

Initialisation

Le constructeur par défaut crée une liste vide. Vous pouvez utiliser le constructeur initializer-list pour créer une liste avec des éléments :

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

Ajout de chaînes de caractères

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

operator<<La fonction () peut être utilisée pour ajouter 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 de caractères

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

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

L'argument à joindre peut être un caractère unique ou une chaîne.

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

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

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

En outre, 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 list fournit également la fonction filter() qui vous permet d'extraire une nouvelle liste contenant uniquement les chaînes de caractères qui contiennent une sous-chaîne particulière (ou qui correspondent à une expression régulière particulière) :

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

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

Enfin, la fonction replaceInStrings() appelle QString::replace() sur chaque chaîne de la liste à tour de rôle. 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 aussi QString.

Documentation des fonctions membres

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

Construit une copie de other.

Cette opération prend un temps constant, car QStringList est implicitement partagée. Cela rend le retour d'une QStringList à partir d'une fonction très rapide. Si une instance partagée est modifiée, elle sera copiée (copy-on-write), ce qui prend un temps linéaire.

Voir également operator=().

QStringList::QStringList(const QString &str)

Construit une liste de chaînes qui contient la chaîne donnée, str. Des listes plus longues peuvent être facilement créées de cette manière :

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

Voir aussi append().

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

Déplacement-construction de QList<QString>.

Après une 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 Qt::CaseSensitive (par défaut), la comparaison des chaînes est sensible à la casse ; sinon, la comparaison est insensible à la casse.

Voir aussi 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 de caractères latins-1 visualisée par str; sinon, renvoie false.

Si cs est Qt::CaseSensitive (par défaut), la comparaison des chaînes est sensible à la casse ; sinon, la comparaison est insensible à la casse.

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

Voir aussi 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 Qt::CaseSensitive (par défaut), la comparaison des chaînes est sensible à la casse ; sinon, la comparaison est insensible à 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 lorsque la recherche s'effectue dans de grandes listes et/ou dans des listes contenant de longues chaînes de caractères (la meilleure façon de le savoir est de procéder à une analyse comparative).

Par exemple, cette fonction a été introduite dans Qt 6 :

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

Cette fonction a été introduite dans Qt 6.9.

Voir aussi 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 Qt::CaseSensitive (par défaut), la comparaison des chaînes est sensible à la casse ; sinon, la comparaison est insensible à la casse.

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

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

Ceci est équivalent à

    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 de QStringMatcher peut s'avérer plus rapide lorsque la recherche s'effectue dans de grandes listes et/ou dans des listes contenant de longues chaînes de caractères (la meilleure façon de le savoir est de procéder à une analyse comparative).

Par exemple, il s'agit d'une fonction surchargée :

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

Ceci est une fonction surchargée.

Cette fonction a été introduite dans Qt 6.7.

Voir aussi 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(const QString &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(QLatin1StringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie la position d'index de la première correspondance de str dans la liste, en cherchant vers l'avant à partir de la position d'index from. Renvoie -1 si aucun élément ne correspond.

Si cs est Qt::CaseSensitive (par défaut), la comparaison des chaînes est sensible à la casse ; sinon, la comparaison est insensible à la casse.

Remarque : le paramètre cs a été ajouté dans Qt 6.7, c'est-à-dire que ces méthodes surchargent désormais les méthodes héritées de la classe de base. Auparavant, ces méthodes n'avaient que deux paramètres. Ce changement est compatible avec le code source et le code existant devrait continuer à fonctionner.

Voir aussi lastIndexOf().

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

Renvoie la position d'index de la première correspondance exacte de re dans la liste, en cherchant vers l'avant à partir de la position d'index from. Renvoie -1 si aucun élément ne correspond.

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

Voir aussi lastIndexOf().

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

Réunit toutes les chaînes de la liste de chaînes en une seule chaîne dont chaque élément est séparé par la chaîne donnée separator (qui peut être une chaîne vide).

Voir aussi QString::split().

QString QStringList::join(QChar separator) const

Cette fonction surcharge QStringList::join().

QString QStringList::join(QLatin1StringView separator) const

Cette fonction surcharge QStringList::join().

QString QStringList::join(QStringView separator) const

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

[noexcept] qsizetype QStringList::lastIndexOf(const QString &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(QLatin1StringView str, qsizetype from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

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

Si cs est Qt::CaseSensitive (par défaut), la comparaison des chaînes est sensible à la casse ; sinon, la comparaison est insensible à la casse.

Remarque : le paramètre cs a été ajouté dans Qt 6.7, c'est-à-dire que ces méthodes surchargent désormais les méthodes héritées de la classe de base. Auparavant, ces méthodes n'avaient que deux paramètres. Ce changement est compatible avec le code source et le code existant devrait continuer à fonctionner.

Voir aussi indexOf().

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

Renvoie la position d'index de la dernière correspondance exacte de re dans la liste, en effectuant une recherche à rebours à partir de la position d'index from. Si from est égal à -1 (valeur par défaut), la recherche commence au dernier élément. Retourne -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 doublons d'une liste. Les entrées ne doivent pas être triées. Elles conserveront leur ordre d'origine.

Elle 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 dont le texte before a été remplacé par le texte after partout où se trouve le 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 Qt::CaseSensitive (par défaut), la comparaison des chaînes est sensible à la casse ; sinon, la comparaison est insensible à la casse.

Dans le cas contraire, la comparaison est insensible à la casse :

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

Voir aussi 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 qui contiennent 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, cette fonction est surchargée :

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

Ceci est 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 des chaînes dans l'ordre croissant.

Si cs est Qt::CaseSensitive (par défaut), la comparaison des chaînes est sensible à la casse ; sinon, la comparaison est insensible à la casse.

Le tri est effectué à l'aide de l'algorithme std::sort() du STL, qui prend en moyenne un temps logarithmique linéaire, c'est-à-dire O(n log n).

Si vous souhaitez trier vos chaînes dans un ordre arbitraire, vous pouvez utiliser la classe QMap. Par exemple, vous pouvez utiliser une classe QMap<QString, QString> pour créer un ordre insensible à la casse (par exemple, les clés étant des versions en minuscules des chaînes et les valeurs étant les chaînes), ou une classe QMap<int, QString> pour trier les chaînes en fonction d'un indice entier.

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

Renvoie une liste de chaînes qui est la concaténation de cette liste de chaînes avec la liste de chaînes other.

Voir aussi append().

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

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

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 liste de chaînes.

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 liste de chaînes.

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

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

Copie de l'opérateur d'affectation de QList<QString>. Affecte la liste de chaînes de caractères other à cette liste de chaînes de caractères.

Après l'opération, other et *this seront égaux.

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

Déplacement de l'opérateur d'affectation de QList<QString>. Déplace la liste de chaînes de caractères other vers cette liste de chaînes de caractères.

Après l'opération, other sera vide.

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

Non-membres apparentés

[alias] QMutableStringListIterator

La définition du 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-const 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 constant de style Java pour QStringList.

QStringList QStringListIterator 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.