【Qt】QTime::toString(“hh:mm:ss.zzz“) 显示乱码的原因与解决方案

在使用 Qt 编写计时器程序时,我遇到一个很奇怪的问题:使用 QTime::toString("hh:mm:ss.zzz") 格式化时间后,显示出来的是一串乱码,如下所示:

本来应该是:

但却显示了一堆“〇”或奇怪的符号。

问题表现

在界面上用 QLabelQTextEdit 显示时间字符串时,代码如下:

ui->showTime->setText(time.toString("hh:mm:ss.zzz"));

然而运行后,显示为全角符号或乱码:〇〇:〇〇:〇〈.〈『〇

原因分析

这是因为 toString("hh:mm:ss.zzz") 返回的字符串虽然是正常的数字格式,但Qt 的控件默认字体设置或语言环境不正确,导致它无法正常显示 ASCII 数字和标点符号,而退回到了全角字符或替代字符(如“〇”、“〈”、“『”等)来渲染。

特别是中文环境下,某些系统字体(例如仿宋、楷体)默认不支持半角英文数字,会强制显示全角字符。

解决方案(如果大家有什么好的解决方法可以评论区留言)

不要直接使用 time.toString() 输出格式化时间,而是使用 QString::arg 手动拼接字符串,确保每一段都是纯 ASCII 字符,并设置控件字体为标准字体。

QString text = QString("%1:%2:%3.%4").arg(time.hour(), 2, 10, QChar('0')).arg(time.minute(), 2, 10, QChar('0')).arg(time.second(), 2, 10, QChar('0')).arg(time.msec(), 3, 10, QChar('0'));ui->showTime->setText(text);

这样拼接出来的时间字符串是:00:01:23.045  绝对不会出现乱码问题。  

结合打点记录功能

如果你有一个“标记”按钮,记录时间点,可以这样写:

static int i = 0;
i++;
QString text = QString("第%1次打点:%2:%3:%4.%5").arg(i).arg(time.hour(), 2, 10, QChar('0')).arg(time.minute(), 2, 10, QChar('0')).arg(time.second(), 2, 10, QChar('0')).arg(time.msec(), 3, 10, QChar('0'));ui->bitTime->append(text);

总结

项目内容
问题类型Qt 显示乱码
关键词QTime::toString、乱码、“〇〇”
解决方式使用 QString::arg 拼接格式化时间字符串
推荐字体Arial、微软雅黑(Microsoft YaHei)

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

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

相关文章

MSVC编译KDChart过程

MSVC编译KDChart过程 一、下载KDChart源文件 GitHub源文件 查看文件夹里的INSTALL.txt,可以看到需要CMake编译。 中文版 以下是使用 CMake 构建系统安装 KD Chart 的说明。 需要 CMake 3.3 或更高版本。Qt 版本支持:* KD Chart 2.5.0 及以下版本需要…

AI Agent管理后台原型设计全拆解(附3套可复用素材)

最近在做AI方向的产品,越来越能感受到“智能体”这个概念正在从技术圈走向应用层。无论是内部探索项目,还是外部合作需求,很多场景都会提到Agent、助手、知识库这些关键词。我们经常讨论如何打造一个有用的AI Agent,但实际上&…

ABP VNext + Elastic APM:微服务性能监控

ABP VNext Elastic APM:微服务性能监控 🚀 📚目录ABP VNext Elastic APM:微服务性能监控 🚀一、引言 ✨架构全景图 🏗️二、环境与依赖 📦三、APM 服务器与 Kibana 快速部署 🐳Doc…

单片机学习笔记.AD/DA(略含有SPI,用的是普中开发板上的XPT2046芯片)

AD/DA基础知识 硬件电路: 模电运放知识回顾: 虚短(Virtual Short)定义:运放同相输入端()和反相输入端(-)的电位近似相等,即V V-,仿佛两个输入端短…

避坑指南:VMware安装CentOS常见错误及完美解决方案

1. 引言 虚拟机允许在同一台机子上有不同的操作系统,还可以用于搭建实验环境、软件测试和兼容性测试等。我是主攻大数据方向的会用到Linux操作系统,所以虚拟机对我来说是很有必要的。我把之前的笔记和安装包整理了一下,就有了现在这个教程。…

Python爬虫04_Requests豆瓣电影爬取

一、 爬取豆瓣电影排行榜数据 import requests import json url ‘https://movie.douban.com/j/chart/top_list’ param { ‘type’:‘24’, ‘interval_id’:‘100:90’, ‘action’:‘’, ‘start’:‘0’, #从库中的第几部电影去取 ‘limit’:‘20’, } headers { ‘Use…

工业物联网模块运营指南​

一、运营目标 工业物联网模块运营的核心目标在于通过高效运作,实现提高工业设备运行效率、降低生产成本、推动生产过程智能化管理,进而提升企业的整体竞争力。这一目标是后续所有运营工作的出发点和落脚点,为各项运营环节提供方向指引。 二、关键运营环节及做法 (一)设…

9.项目起步(3)

1项目起步-静态资源初始化 和 Error Lens 安装图片资源和样式资源error lens 安装2项目起步-scss文件自动导入为什么要自动导入自动导入配置scss变量自动导入$xtxColor: #27ba9b; $helpColor: #e26237; $sucColor: #1dc779; $warnColor: #ffb302; $priceColor: #cf4444;css: {p…

MCP提示词工程:上下文注入的艺术与科学

MCP提示词工程:上下文注入的艺术与科学 🌟 Hello,我是摘星! 🌈 在彩虹般绚烂的技术栈中,我是那个永不停歇的色彩收集者。 🦋 每一个优化都是我培育的花朵,每一个特性都是我放飞的蝴蝶…

字节跳动GR-3:可泛化、支持长序列复杂操作任务的机器人操作大模型(技术报告解读)

1.总结 GR-3 是一个大规模的视觉 - 语言 - 动作(VLA)模型。它对新物体、新环境以及含抽象概念的新指令展现出较好的泛化能力。此外,GR-3 支持少量人类轨迹数据的高效微调,可快速且经济地适应新任务。GR-3 在处理长周期和灵巧性任…

713. 乘积小于 K 的子数组

中等 给你一个整数数组 nums 和一个整数 k ,请你返回子数组内所有元素的乘积严格小于 k 的连续子数组的数目。 示例 1: 输入:nums [10,5,2,6], k 100 输出:8 解释:8 个乘积小于 100 的子数组分别为:[10…

【算法】 SM2、FSRS、SuperMemo算法实现艾宾浩斯记忆曲线,通过以上算法你也可以开发出单词记忆软件

有那些算法可以实现艾宾浩斯单词记忆 用户: 有那些算法可以实现艾宾浩斯单词记忆 元宝: 以下是基于 艾宾浩斯遗忘曲线 的智能记忆算法实现方案,结合 间隔重复算法 与 现代机器学习技术,提供从理论到实践的完整解决方案: 一、核心算法原理 1. …

SQL167 连续签到领金币

SQL167 连续签到领金币 题目描述 用户行为日志表 tb_user_log iduidartical_idin_timeout_timesign_in110102021-07-07 10:00:002021-07-07 10:00:091210102021-07-08 10:00:002021-07-08 10:00:091310102021-07-09 10:00:002021-07-09 10:00:42141010 2021-07-10 10:00:00 …

PHP性能优化与高并发处理:从基础到高级实践

引言 在当今高流量的互联网环境中,PHP应用的性能优化变得至关重要。本文将全面探讨PHP性能优化的各个层面,从基础优化技巧到高级并发处理方案,帮助开发者构建高性能的PHP应用。 基础性能优化 OPcache配置优化 ; php.ini 推荐OPcache配置 [opcache] opcache.enable=1 opc…

C++ std::map erase() 和迭代器详解:常见面试陷阱与深入理解

在使用 C 的 std::map 时,配合 erase() 和迭代器的使用是一个经典面试点,也是实际开发中经常出错的地方。本文将深入讲解 erase() 的行为、end() 的本质以及迭代器失效规则,帮助你写出更健壮的代码。1. erase(it) 的行为当你使用 erase(it) 删…

求职招聘小程序源码搭建招聘小程序开发定制人力资源系统

身份:求职者、企业求职者:完善简历,简历投递企业:企业入驻,查看简历企业会员:半年 、年度 权益:每日发布条数、刷新条数,简历下载数量聊天:求职者可以和企业聊天招聘会…

【31】C# WinForm入门到精通 ——保存文件SaveFileDialog 【属性、方法、事件、实例、源码】

WinForm 是 Windows Form 的简称,是基于 .NET Framework 平台的客户端(PC软件)开发技术,是 C# 语言中的一个重要应用。 .NET 提供了大量 Windows 风格的控件和事件,可以直接拿来使用。 本专栏内容是按照标题序号逐渐…

socket网络编程(1)

socket网络编程(1) 设计echo server进行接口使用 生成的Makefile文件如下 .PHONY:all all:udpclient udpserverudpclient:UdpClient.ccg -o $ $^ -stdc17 -static udpserver:UdpServer.ccg -o $ $^ -stdc17.PHONY:clean clean:rm -f udpclient udpserver…

数据集:机器学习的基石

三、数据集:机器学习的基石1. sklearn 玩具数据集:快速入门的理想选择1.1 玩具数据集的特点与价值sklearn 内置的玩具数据集(Toy Datasets)是机器学习入门的绝佳资源。这类数据集通常具有以下特点:数据量小&#xff1a…

SQL排查、分析海量数据以及锁机制

1. SQL排查 1.1 慢查询日志: mysql提供的一种日志记录, 用户记录MySQL中响应时间超过阈值的SQL语句(long_query_time, 默认10秒), 慢查询日志默认是关闭的, 建议开发调优时打开, 最终部署的时候关闭 1.1.1 检查是否开启了慢查询日志 show variables like %slow_query_log%;临…