目录
1.问题描述
我的目的是想要一个提示框,鼠标放上就会有问题提示,离开就消失,也不介意美观,不需要自定义,有就可以。
出现的问题就是使用了如下代码,会出现中文乱码,或者白框。
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中设置按钮工具提示信息