如何使用 QGraphicsTextItem 渲染表情符号?
How to render emoji's in with QGraphicsTextItem?
事情是这样的。我为我的办公室创建了一个小型 Qt 聊天应用程序。它仅适用于 LAN 连接的客户端。我通过将 QGraphicsTextItem 用于圆角矩形气泡内的消息来实现这一点。
要真正完成它,我需要添加表情符号。所有类似聊天的应用程序都有它们。问题是我不知道如何实施它们。我读过它们是 unicode 标准的一部分。 (此 link 的 unicode 代码证明了这一点 http://unicode.org/emoji/charts/full-emoji-list.html),但我不知道如何在 QGraphicsTextItem 中呈现它。有可能吗?
我可以做一个非常非常体力的工作来分离用户字符串,实际上使用多个文本项来呈现由表情符号 y 分隔的字符串部分,然后将表情符号本身作为一个单独的图形实体,但我宁愿不这样做如果我能避免的话就这样做。
有什么想法吗?
没有什么可做的:表情符号只是字符,您可以从 page you cited 的 "Brow" 列复制粘贴它们,就像您复制任何其他字符一样,例如来自这个答案(包括表情符号!)。一个正常的编译器假设你的源代码是 UTF-8 编码的,就像大多数编辑器一样,所以它是透明的。如果安装了相关的字体就可以了。
// https://github.com/KubaO/Whosebugn/tree/master/questions/emoji-text-item-38000855
#include <QtWidgets>
int main(int argc, char ** argv) {
QApplication app{argc, argv};
QGraphicsScene scene;
QGraphicsView view{&scene};
QGraphicsTextItem item{QStringLiteral("I'm a happy . ")};
scene.addItem(&item);
view.ensureVisible(scene.sceneRect());
view.show();
return app.exec();
}
事情是这样的。我为我的办公室创建了一个小型 Qt 聊天应用程序。它仅适用于 LAN 连接的客户端。我通过将 QGraphicsTextItem 用于圆角矩形气泡内的消息来实现这一点。
要真正完成它,我需要添加表情符号。所有类似聊天的应用程序都有它们。问题是我不知道如何实施它们。我读过它们是 unicode 标准的一部分。 (此 link 的 unicode 代码证明了这一点 http://unicode.org/emoji/charts/full-emoji-list.html),但我不知道如何在 QGraphicsTextItem 中呈现它。有可能吗?
我可以做一个非常非常体力的工作来分离用户字符串,实际上使用多个文本项来呈现由表情符号 y 分隔的字符串部分,然后将表情符号本身作为一个单独的图形实体,但我宁愿不这样做如果我能避免的话就这样做。
有什么想法吗?
没有什么可做的:表情符号只是字符,您可以从 page you cited 的 "Brow" 列复制粘贴它们,就像您复制任何其他字符一样,例如来自这个答案(包括表情符号!)。一个正常的编译器假设你的源代码是 UTF-8 编码的,就像大多数编辑器一样,所以它是透明的。如果安装了相关的字体就可以了。
// https://github.com/KubaO/Whosebugn/tree/master/questions/emoji-text-item-38000855
#include <QtWidgets>
int main(int argc, char ** argv) {
QApplication app{argc, argv};
QGraphicsScene scene;
QGraphicsView view{&scene};
QGraphicsTextItem item{QStringLiteral("I'm a happy . ")};
scene.addItem(&item);
view.ensureVisible(scene.sceneRect());
view.show();
return app.exec();
}