2016-05-17 8 views
1

私はQTextEditから4つの値を読み込み、4つの異なる値として取ります。例えば、私は-0.69995284 0.69995284 0.14188747 0.56378639を挿入し、私はこれで始まるqtexteditから複数の値を読み込み、別個の番号として受け取ります

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

ように私はそれらをしたい:

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

しかし、私は別の値を取得するために何をしなければならないか分かりません。あなたは(各番号について、すなわち1つの文字列)を期待するとして、あなたの分割が

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); 
} 

値を働いていると仮定すると、

+0

と 'QStringのを使用:: toFloat()各リストメンバーのために。 [foreachキーワード](http://doc.qt.io/qt-5/containers.html#the-foreach-キーワード)を見てください。 –

答えて

1

は今、あなたの山車が含まれています。

0

QStringListは、QStringsのコンテナです。あなたのsplitが正しくあなたがvectorにこれらの値を移動するためにcopyを使用する必要があり、イテレータの構文を使用する必要があります値とlinesの各要素を満たしていることと仮定:リストを反復

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

copy(lines.cbegin(), lines.cend(), Values.begin(), [](const auto& i){ return i.toFloat(); }); 
関連する問題