Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String Qt发射信号std::字符串参数调试_String_Qt - Fatal编程技术网

String Qt发射信号std::字符串参数调试

String Qt发射信号std::字符串参数调试,string,qt,String,Qt,当在Qt信号槽中使用字符串时,我遇到了一个问题。由于某些原因,每当涉及带有字符串参数的信号时,slot函数都不会获取该值。我已经在下面粘贴了相关的代码片段和Qt Creator调试会话截图,以了解详细信息- 类别HradDelegate: void HradDelegate::OnSsnChanged(std::string param) { qDebug() << "HradDelegate::OnSsnChanged() " << param.c_str();

当在Qt信号槽中使用字符串时,我遇到了一个问题。由于某些原因,每当涉及带有字符串参数的信号时,slot函数都不会获取该值。我已经在下面粘贴了相关的代码片段和Qt Creator调试会话截图,以了解详细信息-

类别HradDelegate:

void HradDelegate::OnSsnChanged(std::string param) {
  qDebug() << "HradDelegate::OnSsnChanged() " << param.c_str();
  emit ssnChanged(param);
}
qDebug()
行之后设置断点时

现在,
param
的值在
main window::OnSsnChanged()
中是垃圾,我得到了一个分段错误

该项目针对多平台进行编译。它在Ubuntu 14.04/16.04和OS X上运行良好。当我在ARM7hf上编译和运行时,我看到上面的错误,它发生在所有涉及
std::string
的信号上

有什么我错过的吗


谢谢。

std::string转换QString和QString转换std::string

std::string  name="1234";
QString data = QString::fromStdString(data);
name = data.toStdString()
我使用15.04,这是没有错误的,你的信号是正确的,在连接之前初始化
或者你可以构建一个新的pro进行测试,然后你可以从两者之间的比较中得到一个结果。

必须使用QStringor register std::string I did register std::string,如init()方法所示。也不可能使用QStand,因为HRAID委托::OnsSnCuxEd()从纯C++库调用,它不能访问任何QT特定的东西。是否有任何次要线程?如果不是,则不需要注册任何类型,因为这可能是一个“直接连接”,基本上是一个直接方法调用。@Eylandesc它不必是QString,信号/插槽连接基本上可以携带任何数据类型。注册类型仅对“排队连接”是必需的,例如,排队连接发生在不同线程上的对象之间。
std::string  name="1234";
QString data = QString::fromStdString(data);
name = data.toStdString()