【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
英文地址,請注明出處:http://en.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%;臨…