【问题标题】:How can I convert QString to int for Unicodes? for QWSServer sendKeyEvent如何将 QString 转换为 Unicode 的 int?对于 QWSServer sendKeyEvent
【发布时间】:2015-01-17 17:43:53
【问题描述】:

如何将仅由一个 unicode 组成的 QString 转换为 QChar 和 char?

我有这个角色 cedilla。 http://graphemica.com/%C3%A7

我对 QChar 还没有任何想法,但我尝试使用此代码将 QString 转换为 char。

char c[2];
strcpy(c, keyItem.contentText.toUtf8().constData());
printf("Character is: %c\n", c[0]);

但它显示了这个字符。

我的“keyItem”是一个类,虽然只有一个字符,但 contentText 返回一个 QString。当我尝试返回通常的字母时,我可以正确阅读它们。

更新:我正在尝试创建一个键盘,我必须获取 QString 的 int 值,这就是为什么我必须先将其转换为 char。

我将使用它来创建键盘。

send(int(c[0]);
void send(int key){ 
    QWSServer::sendKeyEvent(key, key, 0, true, false);
}

【问题讨论】:

  • 你使用的是什么操作系统?
  • 你为什么要这样做? QString 已经是 Unicode。
  • 因为 AFAIK printf 不能打印 UTF-8 字符。而在 Windows 上的 AFAIK,例如,您有 wprintf 用于打印 unicode ......这就是操作系统很重要的原因,因为这些功能可能因操作系统而异。
  • 我实际上正在使用 POS 设备,并且我正在使用“DEBUG”功能,它有点像 printf。我在 linux 桌面上对其进行编程,但它在我的桌面中返回的方式是这样的。我正在使用这个函数,比如 printf DEBUG("Character is: %c\n", c[0]);

标签: qt qstring qchar


【解决方案1】:

还是谢谢。我现在找到了解决方案。

QChar c;
c = keyItem.contentText[0];
send(c.unicode());

:)

【讨论】:

    猜你喜欢
    • 2013-05-14
    • 2011-03-13
    • 2011-07-23
    • 2011-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    相关资源
    最近更新 更多