跨平台 C++ 头文件。为每个平台创建单独的 C++ 文件:windows、linux、mac。处理枚举窗口的平台特定实现。
在 mac 端:我填充了一个 CFStringRef。头文件定义了一个 QString 对象。我需要将 CFStringRef 的内容传递给 QString。
如何做到这一点?
这是 Qt 内部使用的静态函数(来自 src/corelib/kernel/qcore_mac.cpp):
QString QCFString::toQString(CFStringRef str)
{
if (!str)
return QString();
CFIndex length = CFStringGetLength(str);
if (length == 0)
return QString();
QString string(length, Qt::Uninitialized);
CFStringGetCharacters(str, CFRangeMake(0, length), reinterpret_cast<UniChar *>
(const_cast<QChar *>(string.unicode())));
return string;
}
Run Code Online (Sandbox Code Playgroud)
更新(2020 年):现在使用QString::fromCFString()作为@ehopperdietzel 在他的回答中建议的。
| 归档时间: |
|
| 查看次数: |
1623 次 |
| 最近记录: |