我看过其他几篇关于将 QString 转换为 std::string 的帖子,应该很简单。但不知何故,我得到了一个错误。
我的代码是使用 cmake 编译成一个 VS 项目(我使用的是 VS express),所以 QT 库没有问题,我编写的 GUI 除了这部分之外还可以工作。
我有一个QComboBox cb
包含某些对象的名称的 a,以及一个QLineEdit lineEdit
允许我指定我正在寻找的对象的名称的 a。当我按下 go 按钮时,它应该运行一个经过测试和工作的函数,并使用来自 theQComboBox
和 the的输入lineEdit
作为参数。
这是单击 go 按钮时的代码:
void gui::on_go_clicked(){
std::string str(cb->currentText().toStdString());
//std::cout << str << "\n";
//QString qstr = lineEdit->text();
//std::cout<<lineEdit->text().toStdString();
updateDB(str, lineEdit->text().toStdString());
}
第一行,创建str
,工作正常。IE 库函数或toStdString()
. 但是当它执行我的函数时,程序中断了,这不是因为函数,而是因为它试图转换的部分lineEdit->text().toStdString()
。
lineEdit
只有当我在框中写下“测试”一词时。我已经看到其他关于 unicode 的答案,我简要地尝试过,但我可以假设用户不会在lineEdit
框中放置任何特殊字符,除非 '_' 和 '.',这不应该是 unicode。