Преобразовать QVariant в символ * - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть переменная типа QVariant в Qt5:

my_var = QVariant(QString, "(198.95875549316406, 124.93024444580078, 38.149349212646484)")

Как мне получить char* с координатами?

Как

char * my_char = "(198.95875549316406, 124.93024444580078, 38.149349212646484)";

1 Ответ

4 голосов
/ 07 апреля 2020

Например, вот так:

QVariant my_var(QString(
  "(198.95875549316406, 124.93024444580078, 38.149349212646484)"));
qDebug() << my_var.toString();
auto std_str = my_var.toString().toStdString();
const char* ptr = std_str.c_str();
std::cout << ptr << std::endl;

Только не делайте это в одну строку, как my_var.toString().toStdString().c_str(), потому что временный std::string, созданный toStdString, будет немедленно уничтожен, а ваш const char* указатель недействителен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...