2016-05-17 5 views
1

Ich möchte 4 Werte von meinem QTextEdit lesen, und nehmen Sie sie als 4 verschiedene Werte. Fügen Sie beispielsweise i -0.69995284 0.69995284 0.14188747 0.56378639 und ich möchte, dass sie alslesen Sie mehrere Werte aus qtextedit und nehmen sie als eindeutige Zahlen

float Value1 = -0.69995284 float Value2 = 0.69995284 float Value3 = 0.14188747 float Value4 = 0.56378639

ich damit beginnen:

QString textEditValue = ui->myTextEdit->toPlainText() QStringList lines = textEditValue .split(" ");

aber ich weiß nicht, was ich tun müssen unterschiedliche Werte zu erhalten.

+0

Iterate über die Liste und verwenden 'QString :: toFloat() 'für jedes Listenmitglied. Sehen Sie sich das [foreach-Schlüsselwort] (http://doc.qt.io/qt-5/containers.html#the-foreach-keyword) an. –

Antwort

1

Ihr Split Unter der Annahme gearbeitet hat, wie Sie (das heißt eine Zeichenfolge für jede Nummer)

QVector<float> values; 
int size = lines.size(); 
for(int i=0; i < size; i++) 
{ 
    bool ok=false; 
    float value = lines.at(i).toFloat(&ok); 
    if(ok) 
    values.push_back(value); 
} 

Werte enthalten nun Ihren Schwimmer erwarten.

0

QStringList ist ein Behälter für QString s. Vorausgesetzt, dass Ihre split richtig jedes Element in lines mit einem Wert gefüllt die Iterator Syntax verwenden, sollten Sie copy um diese Werte zu bewegen in ein vector verwenden sollen:

vector<float> Values(lines.size()); 

copy(lines.cbegin(), lines.cend(), Values.begin(), [](const auto& i){ return i.toFloat(); }); 
Verwandte Themen