[英]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.