QT中tooltip出现汉字乱码

目录

1.问题描述

QT中tooltip出现汉字乱码
QT中tooltip出现汉字乱码
我的目的是想要一个提示框,鼠标放上就会有问题提示,离开就消失,也不介意美观,不需要自定义,有就可以。

出现的问题就是使用了如下代码,会出现中文乱码,或者白框。

ui.label_19->setToolTip("水平距离");//setToolTip提示框

2.个人环境配置

VS2015+QT5.8

在vs进行编程

3.解决方法

(1)
在cpp文件中代码改为如下:

ui.label_19->setToolTip(QString::fromLocal8Bit("相机和机身中心水平距离"));//setToolTip提示框

(2)
在QT样式表中添加QToolTip { border:1px solid rgb(118, 118, 118); background-color: rgba(18, 26, 40,0.7); color:rgb(255, 255, 255); font:12px; }

4.为什么

字符编码:不同字符的编码不同,其二进制的位数也不同。为了达到节省空间,解析方便等目的,出现了多种存储字符编码的方式,每种方式对应一套算法,这套算法也称字符编码。例如Unicode字符集,utf-8,utf-16字符编码。

执行字符集:可执行应用程序内使用何种字符编码。编译器会将源码字符集转换为执行字符集。

所以,显示中文乱码的原因为:QString的转码方式与执行字符集不一致。

5.总结

1.解决方法中的两步奏缺一不可,测试后发现如果没有样式表,中文也无法显示,目前不理解为什么。
2.如果提示内容换为英文,可以正常显示,但是中文就会出现乱码。

参考文献
[1]QT中出现的中文乱码问题及其解决方案
[2]qt中设置按钮工具提示信息

上一篇:每日日报


下一篇:「GNU Emacs」- 界面设置 @20210210