简体   繁体   English

将 QVariant 转换为 char*

[英]Convert a QVariant to a char*

I have a variable of type QVariant in Qt5:我在 Qt5 中有一个 QVariant 类型的变量:

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

How can I get a char* with the coordinates?如何获得带有坐标的char*

Like喜欢

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

For example like this:例如像这样:

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;

Just don't do it in one line like my_var.toString().toStdString().c_str() because temporary std::string created by toStdString will be immediately destroyed and your raw const char* pointer invalidated.只是不要像my_var.toString().toStdString().c_str()这样在一行中执行此操作,因为由toStdString创建的临时std::string将立即被销毁,并且您的原始const char*指针无效。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM