Qt C ++ Как вырезать букву QString, которая является членом QStringList в 1 команде - PullRequest
1 голос
/ 10 января 2020

в моем коде мне нужно удалить последние пробелы в QString, который является элементом QStringlist DataColumns.

Вот что у меня есть:

  DataColumns[0] : "Time [ms]      "
  DataColumns[1] : "Position [m]"
  DataColumns[2] : "End Velocity [m/s]     "

Вот что я хочу иметь:

  DataColumns[0] : "Time [ms]"
  DataColumns[1] : "Position [m]"
  DataColumns[2] : "End Velocity [m/s]"

В al oop over i (элемент DataColumn) и j (буква элемента DataColumn) я делаю следующее, и это работает:

 QStringList dataColums;
 QString A;
 ...
 A= dataColums[i];
 A.chop(1);
 dataColums[i] = A;

Но когда я пытаюсь поместить последние 3 строки в 1 команду, это не работает.

dataColums[i] = dataColums[i].chop(1);

Кто-нибудь может мне объяснить, почему это так? Спасибо!

Ответы [ 2 ]

2 голосов
/ 10 января 2020

Функция объявлена ​​как

void QString::chop(int n);

, то есть имеет тип возврата void.

Так что это утверждение

dataColums[i] = dataColums[i].chop(1);

недопустимо. Это выглядит как

dataColums[i] = void;

Чтобы удалить пробелы с обеих сторон строки, вы можете использовать функцию-член trimmed.

2 голосов
/ 10 января 2020

Если вам просто нужно удалить пробелы, вы можете использовать функцию QString :: trimmed !

В качестве альтернативы, вы можете удалить все символы после последней ], используя QString :: truncate в сочетании с QString :: lastIndexOf .

...