Indice QStringList



  • Ho un problema, in un programma la pressione di un pulsante , lo slot deve trasferire il contenuto di una QStringList in un QTextStream; ma provando mi è capitato di premere due volte il tasto e il programma è cresciato. Sicchè attraverso un lento lavoro di Debug ho visto che l'indice che attraversa la QStringList mi dà valore -1; al che penso sia vuota la QStringList, ma la funzione isEmpty, mi dà esito negativo (false). Da qui la mia domanda: l'indice è in una posizione per cui non può ripercorrere la QStringList ? Se si come posso riposizionarlo per fargli rifare il ciclo for? Oppure si è creata una nuova situazione per cui devo ragionare diversamente ?
    All'incirca lo slot è così

    QTextStream flusso;
    QStringList lista;
    Class::StreamDati_onClicked()
    {
      for (int = 0; int < lista.size() ; int++
               {
                  flusso << lista.at(i)
                }
    
    
    //your code here
    

  • Qt Champions 2018

    prova:

    for(const QString& i : qAsConst(lista))
    flusso << i;
    


  • Si va bene, ma purtroppo fa ancora crash.



  • Hi @Polly

    Can you please share some more information ? I Suspect the QStringList you are missing something.

    test.h

    private:
    
        QTextStream m_flusso;
        QStringList m_lista;
    

    test.cpp

    void Widget::on_myButton_clicked()
    {
        qDebug() << Q_FUNC_INFO << endl;
    
        for (int i = 0; i < m_lista.size() ; i++) {
            m_flusso << m_lista.at(i);
        }
    
        qDebug() << m_flusso.readAll() << endl;
    }
    

    As my QStringList is empty the output is:

    void Widget::on_myButton_clicked()  // Q_FUNC_INFO
    
    QTextStream: No device
    "" 
    

    Can you please tell me what is your QStringList contents are, so i can help you.

    All the best.



  • You are right. I wrong QStringList was empty after stream.
    So i put in the begin a condition to avoid to continue to process it.
    Thx for all.

    Avevi regione. Ho sbagliato a interpretare la QStringList era vuota dopo lo stream.
    Così ho posto una condizione all'inizio per evitare che fosse riprocessata.
    Grazie per tutto,



  • @Polly
    Cool, can you please mark it as SOLVED if the issue is resolved ?

    All the best.


Log in to reply