【发布时间】:2011-08-19 12:51:20
【问题描述】:
我正在使用 QtLine Edit 并使用 lineEdit->settext("Test") 为其设置一些文本。 这工作正常,但是当我从我的结构中设置数据并从宽字符数组转换它时,它没有设置它。
lineEdit->setText(QString::fromWCharArray(pUserInfo.LastName,MAX_NAME_SIZE));
pUserInfo 是一个结构体 姓氏的类型为 wchar_t ,LastName[MAX_NAME_SIZE];
我解决了这个问题
QString::fromWCharArray(pUserInfo.FirstName,wcslen(pUserInfo.FirstName));
感谢任何帮助。 谢谢。
【问题讨论】:
-
逗号是复制粘贴错误吗? wchar_t ,Last_N...
-
不应该是MAX_NAME_SIZE-1吗?你的字符串是空终止的吗?
-
@frank : 如何让它空终止?
-
LastName 的内容是什么(十六进制)?如果它不是以空值结尾的,你怎么知道字符串的实际长度?如果没有 \0 而是随机数据,则转换可能会由于无效字节而中断。
-
可能 setText 不是问题。尝试
QString test = QString::fromWCharArray(pUserInfo.LastName,MAX_NAME_SIZE));然后qDebug() << test(你必须#include <QtCore/QDebug>)。看看test字符串是否还有内容。
标签: qt