How to save a element of a QList<QString> to variable of QString type

  • I filled a QList with string but i can't figure out how to pass that string to a QString variable. I know i could fill the list because with the debug i could saw the string of the path of those files.

    QList<QString> *list_name=new QList<QString>[list.size()];
        for (int i = 0; i < list.size(); ++i)
            QFileInfo fileInfo_for_path_2 =;
            QString route=fileInfo_for_path_2.absoluteFilePath();
        QString save;

    Getting this error

    /home/zen/QT/fisrt/mainwindow.cpp:60: error: no match for ‘operator=’ (operand types are ‘QString’ and ‘QList<QString>’)

  • Hi @aurquiel

    What about

    save = list_name->at(0)

  • Moderators

    @aurquiel said in How to save a element of a QList<QString> to variable of QString type:

    QList<QString> *list_name=new QList<QString>[list.size()];

    Don't do that. Create the list as a local variable. The compiler is correct complaining as QList<QString> * which is the type of list_name has no operator = accepting the mentioned arguments.

  • Moderators

    QList<QList<QString>> list_name;
    // ...
    QString save = list_name[0]; //< See the problem. list_name[0] is of type QList<QString> there's no known conversion so the compiler gives up here.

  • You declare a pointer to an array of StringList, ex:

    QList<QString> *list_name=new QList<QString>[2];  // pointer to 2 StringList
    qDebug()<<list_name[0][0];  // print hello1
    qDebug()<<list_name[1][1];  // print bye2

    I guess is not what you want.
    My strong advice: only use pointers in case of absolute necessity !

Log in to reply