C++ 读取Qt中的REG_MULTI_SZ类型注册表项

C++ 读取Qt中的REG_MULTI_SZ类型注册表项,c++,qt,registry,C++,Qt,Registry,我能够使用qt读取注册表值,其类型包括REG\u SC和REG\u DWORD QSettings settings(registryPath, QSettings::NativeFormat); settings.beginGroup(mDeviceName); // Filter out this device only QStringList regReturn = settings.allKeys(); keyValue = settings.value(regReturn[i]).t

我能够使用qt读取注册表值,其类型包括
REG\u SC
REG\u DWORD

QSettings settings(registryPath, QSettings::NativeFormat);
settings.beginGroup(mDeviceName); // Filter out this device only
QStringList regReturn = settings.allKeys();

keyValue = settings.value(regReturn[i]).toString();
但是当我试图阅读
REG\u MULTI\u SC
类型的东西时,我什么也没有得到。如何读取硬件ID包含的枚举HID设备的硬件ID密钥

HID\VID_1915&PID_0024&REV_0001&MI_00
HID\VID_1915&PID_0024&MI_00
HID_DEVICE_SYSTEM_KEYBOARD
HID_DEVICE_UP:0001_U:0006
HID_DEVICE

?

根据@DmitrySazonov的评论,我可以对其进行调试

v = QVariant(settings.value(regReturn[i]));
并发现
v
包含
QStringList
。解决方案是执行
keyValue=settings.value(regReturn[i]).ToString()


而不是
keyValue=settings.value(重新返回[i]).toString()

尝试使用.toString()而不是.toString()。或者在调试器中查看实际类型的值什么是“nothing”?QVariant中的数据类型是什么?@DmitrySazonov抱歉,我对Qt没有经验。
keyValue
不会从
settings.value
表达式中得到任何返回。你能解释一下QVariant是什么意思吗?我不明白你只看docsAh是什么意思,我知道。它包含一个QStringList,所以这就是发生这种情况时我必须做的,而不仅仅是“toString()”Yepp!应该把它作为一个答案。我第一次做得不对;)我想我读了手机上的评论,但实际上错过了句子的第一部分:P