【发布时间】:2014-05-27 07:32:18
【问题描述】:
我使用 Qt -4.7.4 版本在 VS2005 上做了一个项目。在那个项目中,我使用 lineEdit 并像这样从 lineEdit 中获取文本
const char* test= lineEdit->text().toStdString().c_str();
以上行完美运行,但现在我正在使用 VS2010 并使用上面相同的行,但它没有向我显示 test 变量的任何内容。
qDebug()<<lineEdit->text()<<endl;
上面的行正在打印 lineEdit 的正确值,但是当我使用 std::string 然后使用 cout 时。它在 VS2010 上没有显示任何值。所以我用了
const char* test= lineEdit->text().toLatin1().data();
上面这行现在完美地向我展示了 VS2010 上的一切。
我不知道为什么 const char* test= lineEdit->text().toStdString().c_str(); 在 VS2005 上运行良好,而在 VS2010 上却不能。
【问题讨论】:
-
在 Qt 领域,使用 Qt 类和函数。如果您不编写外部接口,我真的会避免更改为标准 C++ 类,即使这样我也更愿意坚持 Qt 方面。
-
实际上我正在编写一个外部接口...我在 mongoDB 中使用这个 lineEdit 值..它与 const char* 一起使用。
-
它期望什么编码?
QString是 Unicode,所以这很重要。
标签: c++ visual-studio-2010 qt qlineedit