日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

解决Windows下Arm下Linux下Qt4程序的中文乱码问题

發布時間:2025/3/20 linux 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 解决Windows下Arm下Linux下Qt4程序的中文乱码问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

解決Windows下ArmLinuxQt4程序的中文亂碼問題

###############################################################################

#操作系統:Win7垃圾版

#QT: 4.8.1 ?

#操作系統:Winxp垃圾版

#QT: 4.8.1

#開發板:友善之臂Tiny6410 V1.2 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
#QT: 4.6.1
#QTE-arm: 4.7.0

#Write By Kinglate 20130806

###############################################################################

也許這個世界上沒有人會像我一樣遇到一個問題了,解決了,很開心,同時也很傷心!跨平臺編程相當苦逼,平臺是夸了,但是問題的解決方案并非夸平臺!相當頭疼。其他的不想多說,挑個最典型的(解決中午亂碼問題)跟大家分享一下,好讓大家今后能少走彎路!

一、解決WindowsQt4程序的中文亂碼問題

1.方法一(該方法對于我的win7機器行不通,但是我的xp機器卻沒有問題,神奇吧?所以對于您的機器可能行不行。)

main.cpp中找到int main(intargc,char*argv[])這個入口函數,在其里面加入以下四行代碼:

2.main.cpp中加入#include<QTextCodec>編碼頭文件,然后在int main(intargc,char*argv[])這個入口函數,在其里面加入以下一行代碼:

QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));

3.(至于加到什么位置,在{}內,只要不加在returna.exec();這行代碼的后面就可以了!)完成后如下圖所示:

4.需要使用中文的地方,還是舉個例子講解一下:

QMessageBox::information(this, tr("連接完成"), tr("本地Ip為:")+localIpStr+tr("端口號為:")+localport,QMessageBox::Ok);

測試結果:

5.方法二(相當好用一步到位)

main.cpp中找到int main(intargc,char*argv[])這個入口函數,在其里面加入以下四行代碼:

QTextCodec*codec=QTextCodec::codecForLocale();//設置文本為GB2312編碼

QTextCodec::setCodecForTr(codec);//設置使用tr內的編碼

QTextCodec::setCodecForLocale(codec);//設置本地編碼

QTextCodec::setCodecForCStrings(codec);//設置字符串編碼

至于加到什么位置,在{}內,只要不加在returna.exec();這行代碼的后面就可以了!

完成后如下圖所示:

需要使用中文的地方,還是舉個例子講解一下:

QMessageBox::information(this, tr("連接完成"), tr("本地Ip為:")+localIpStr+tr("端口號為:")+localport,QMessageBox::Ok);

測試結果:

二、解決ArmQt4程序的中文亂碼問題

方法一:本人以前常用的

1..cpp(main.cpp)中加入#include<QTextCodec> ? //Qt的字符編碼頭文件

2.在每個需要用到中文的地方所在的函數體內設置中文字體編碼,放在該函數體的第一句即可:

QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));//設置中文字體編碼

需要輸入中文時要用tr("我是中文!")

3.還是舉個例子講解一下:

QMessageBox::warning(this, tr("Waring"),tr("輸入用戶ID或者密碼錯誤,請重新輸入!"),QMessageBox::Yes);

測試結果:

方法二:(不一定行)

4.這個方法相當簡單,在.cpp(main.cpp)處,哪兒需要用到中文時trUtf8()函數即可,如:trUtf8(我是中文!)頭文件都不需要加!

5.還是舉個例子講解一下:

QMessageBox::information(this, trUtf8("打開成功"), trUtf8("已經成功打開串口:")+ui->portName_b->currentText(), QMessageBox::Ok);

測試結果:

三、解決LinuxQt4程序的中文亂碼問題

LinuxQt4程序用得少,懶得搞,估計跟Windows下差不多,自己百度去吧!


轉載于:https://blog.51cto.com/jliangli/1265659

總結

以上是生活随笔為你收集整理的解决Windows下Arm下Linux下Qt4程序的中文乱码问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。