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