ImGui显示中文

news2025/4/16 22:29:23

ImGui显示中文

前言

首先要加载中文字体,相信大家在网上能搜到或者某些教程都是这么说明的,或者说在字符串前面加上u8前缀的,
例如:ImGui::Text(u8"中文中文 chinese.");,但是大概率中文还是??,那么请移步下面

文本显示中文
  • 1.测试过的项目example_win32_directx11和example_glfw_opengl3

  • 2.代码示例

// 初始化代码...

ImGuiIO& io = ImGui::GetIO(); (void)io;
// 其它代码...

// 微软雅黑字体
io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\msyh.ttc", 18.0f,nullptr,
        io.Fonts->GetGlyphRangesChineseFull());

// 使用中文
ImGui::Begin("hi-嗨!别来无恙");                     

ImGui::Text("中文中文 chinese.");   
ImGui::Text(u8"中文中文 chinese.");  // 加不加u8前缀都可以

ImGui::Text("名称:"); ImGui::SameLine();
static char buff[64] = "";
ImGui::InputText("##label:", buff, 64);

ImGui::End();

// Rendering ...
ImGui::Render();
  • 3.最关键的一步
    找到上面代码所在文件,右键使用记事本打开,文件–另存为–选择utf-8编码,保存,然后再运行,就可以显示中文了
    和项目字符集目前没有关系,unicode和多字节都可以正常显示
    在这里插入图片描述
输入框输入中文
  • 1.测试过的项目example_win32_directx11和example_glfw_opengl3

  • 2.代码示例


ImGui::Text("名称:"); ImGui::SameLine();
static char buff[64] = "";
ImGui::InputText("##label:", buff, 64);

  • 3.如果使用的是项目example_glfw_opengl3,此时不论字符集是unicode和多字节都可以正常显示

  • 4.如果使用的是项目example_win32_directx11

    • 如果字符集是多字节则输入框的中文为??
    • 如果字符集是unicode,则输入框正常显示
  • 5.所以最简单的办法是把项目字符集改成unicode

  • 6.备注:项目example_win32_directx11多字节输入框中文乱码原因如下,查看文件imgui_impl_win32.cpp,搜索WM_CHAR,可以看到他有字符集转换操作,这里我就没有细致调试过了,有兴趣的同学可以深入研究研究,欢迎评论交流
    在这里插入图片描述

效果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1028902.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java虚拟机:内存区域分配和对象的创建

Java虚拟机:内存区域分配和对象的创建 虚拟机内存区域分配 首先上一张图: 这里主要是看右边的图,这张图描述了JVM中的内存分配区域,其中蓝色的部分是每个线程独有的,而绿色部分是线程共有的。我们以这张图为准&…

iptables 四表五链图

iptables 通过配置四表五链,来控制内核多数据包的过滤、记录、转发、修改操作 全局结构图 常用的 filter 和 nat 表联合图 各个表拥有的链图

传导和辐射EMI有什么区别?

当我们设计原型或使用开发板时,通常可以忽略电磁干扰。但EMI在现实生活中的电子设备和系统中是一个重要的主题,工程师有责任确保电路能够在预期的EMI水平下正常运行,并且不会产生过多的EMI。 我倾向于将EMI与无线干扰联系起来,考…

Nginx服务优化措施、网页安全与配置防盗链

目录 一.优化Nginx 二.隐藏/查看版本号 隐藏版本号方法一:修改配置文件,关闭版本号 隐藏版本号方法二:修改源码文件中的版本号,重新编译安装 三.修改用户与组 四.设置缓存时间 五.日志切割脚本 六.设置连接超时控制连接访…

nvme_queue_rq函数分析一

nvme I/O请求时,数据交互分析 主要函数为nvme_queue_rq: static blk_status_t nvme_queue_rq(struct blk_mq_hw_ctx *hctx, const struct blk_mq_queue_data *bd) {struct nvme_ns *ns hctx->queue->queuedata;struct nvme_queue *nvmeq hctx-…

elementui表单的验证问题

elementui表单的验证问题 element ui是基于vue的一个ui框架,用起来还是挺不错的,但是有时候还是会遇到一些摸不着头脑的情况。 ​ 我在打开一个新增数据的对话框的时候出现了一个问题,明明是新增,但是一打开就出现了错误提示&…

Linux虚拟化指南:构建虚拟化环境

虚拟化技术在计算领域具有广泛的应用,能够提高硬件资源的利用率、降低维护成本,并实现灵活的资源分配。Linux作为一种开源操作系统,在虚拟化方面也有多种选择和工具可供使用。下面将介绍如何构建Linux虚拟化环境,并提供一些建议和…

skywalking入门

参考: https://www.jianshu.com/p/ffa7ddcda4ab 参考: https://developer.aliyun.com/article/1201085 skywalking(APM) 调用链路分析以及应用监控分析工具 Skywalking主要由三大部分组成:agent、collector、webapp-…

强怼美国政府,Zlibrary高调复活,官宣2023年最新网址,免费下载海量电子书籍

去年11月,号称是全球最大电子图书馆的Z-Library被美国FBI封禁,连同下线的还有多达249个备用、影子、镜像、关联域名等。 随后,美司法部在阿根廷逮捕了Z-Library网站幕后的两位策划者。他们被控盗取文化作品牟利,经常在新书出版后几…

HTML5中使用video标签

参考链接 <videocontrolscontrolslist"nodownload noplaybackrate"disablePictureInPicture"true"disableRemotePlayback"true"src"https://www.runoob.com/try/demo_source/movie.mp4"></video>隐藏下载&#xff1a;nod…

ElasticSearch从入门到精通(一)

1. 初识 ElasticSearch 传统数据库查询的问题&#xff1a;如果使用模糊查询&#xff0c;左边有通配符&#xff0c;不会走索引&#xff0c;全表扫描&#xff0c;效率比较慢 倒排索引 将文档进行分词&#xff0c;形成词条和 id 的对应关系即为反向索引。 以唐诗为例&#xff0c…

解决域控制器的传感器配置问题

gpu加速计划 下载东西有时会报没有apt-utils&#xff0c;所以最好先给它下了&#xff1a; sudo apt-get install apt-utils验证&#xff1a; python #输入库 import torch #查看版本 print(torch.__version__) #查看gpu是否可用 torch.cuda.is_available() #返回设备gpu个数…

跨端开发方案之桌面应用小程序

小程序容器技术的未来是充满希望的&#xff0c;它为我们开辟了一个全新的数字世界&#xff0c;连接了桌面操作系统和移动生态系统之间的界限。正如技术不断演进&#xff0c;我们可以期待着更多的创新和发展&#xff0c;为用户带来更加便捷和多样化的应用体验。这一技术的推广和…

用C++写一个生成n个m之内的随机整数的函数

#include <iostream> #include <cstdlib> #include <ctime>using namespace std;void generateRandomNumbers(int n, int m) {srand(time(NULL)); // 初始化随机数种子for (int i 0; i < n; i) {int num rand() % m 1; // 生成 1 到 m 之间的随机整数c…

windwos10系统搭建我的世界服务器,内网穿透实现联机游戏Minecraft

文章目录 1. Java环境搭建2.安装我的世界Minecraft服务3. 启动我的世界服务4.局域网测试连接我的世界服务器5. 安装cpolar内网穿透6. 创建隧道映射内网端口7. 测试公网远程联机8. 配置固定TCP端口地址8.1 保留一个固定tcp地址8.2 配置固定tcp地址 9. 使用固定公网地址远程联机 …

麒麟信安的2023世界计算大会时刻

9月15至16日&#xff0c;由工业和信息化部、湖南省人民政府主办的2023世界计算大会在长沙隆重举行。麒麟信安连续五年亮相世界计算大会&#xff0c;本届大会麒麟信安作为计算产业的重要建设者、国家新一代自主安全计算系统产业集群内核心企业&#xff0c;在展览展示、主题演讲、…

基于SSM的金鱼销售平台

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

LeetCode 23. 合并 K 个升序链表

题目链接 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 题目解析 首先我们实现一个合并两个有序链表的操作&#xff0c;然后使用归并的思想对数组中的链表进行排序。 代码 /*** Definition for singly-linked list.* struct ListNode {* in…

基础组件(线程池、内存池、异步请求池、Mysql连接池)

文章目录 1、概述2、线程池2、异步请求池3、内存池 1、概述 池化技术&#xff0c;减少了资源创建次数&#xff0c;提高了程序响应性能&#xff0c;特别是在高并发场景下&#xff0c;当程序7*24小时运行&#xff0c;创建资源可能会出现耗时较长和失败等问题&#xff0c;池化技术…

Spring事件机制之ApplicationEvent

博主介绍&#xff1a;✌全网粉丝4W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…