嵌入式Linux上Qt5的中文顯示

2021-06-23 04:20:32 字數 2163 閱讀 7757

qt5中文顯示

qt5預設原始碼字符集和執行字符集為utf8,所以預設情況下只要中文使用的是utf8編碼格式,qt5都可以識別,當然,如果是其他編碼格式的話就需要做一些轉換。這裡所說的識別是只是第一步,如果需要正常顯示的話還需要對應的字型檔案,也就是通常的的ttf檔案等,這種檔案描述了編碼和字型之間的對應關係,使程式可以把編碼和字型聯絡起來,進而把要輸出的字型通過

framebuffer輸出,於是我們就看到了相應的文字。

解釋了文字實現的過程,再來看看要怎樣讓qt5實現中文輸出。

先看中文的編碼:

檢視qt程式的介面描述檔案*.ui,發現檔案頭開頭是

<?xml version="1.0" encoding="utf-8"?>
這說明ui中已經使用的是utf8的編碼格式。

檢視qtcreator->工具->選項->文字編輯器->行為->檔案編碼

預設編碼選擇:utf8

這樣原始碼字符集就是utf8編碼

只有編碼還不夠,還要編碼可以轉換為可見的文字,於是再來看qt5是否有對應的字型檔案:

qt5預設使用的字型檔案都放在/usr/lib/fonts目錄下, qt5支援三種型別的字型,*.ttf(需要freetype支援)、*.pfa、*.qpf.

fonts目錄下有很多字型,預設都是qt5自帶的,除了qpf檔案外,都可以使用桌面系統的字型檢視器檢視,使用字型檢視器可以檢視其中是否有對中文字型的支援,另外還可以使用應用程式中指定字型的方法檢驗字型支援:

**中加入

qfont font("****", 16);

a.setfont(font);

****為字型名稱;

qt5自帶的字型檔案是沒有中文支援的。

qfont font("fangsong", 16);

a.setfont(font);

檢驗,結果中文字型顯示正常,ok,而且是仿宋沒錯:)

應為qt5預設並不會首先匹配我們加進去的字型,所有如果程式不指定font,中文還是無法顯示。

考慮到嵌入式系統的特殊性,可以在

/usr/lib/fonts目錄下只放一種字型,例如仿宋、雅黑等,這樣一方面可以解決中文顯示的問題,又可以減小image大小,兩全其美;缺點嘛,程式不能隨便用字型了,不過嵌入式嘛:)

ps:以上同樣適用於其他文字

shell中文顯示

shell終端無法輸出中文存在兩個原因:

串列埠檢視工具的編碼方式不是utf8,這種問題常見於windows機器上;

板子上的busybox不支援中文編碼utf8輸出

對於原因2,解決方法是再編譯busybox的使用開啟unicode的support。

為什麼我開啟了unicode support 中文還是?????

原因是busybox預設的utf8範圍只到767,而中文的最大值為u+9fa5,所以還需要修改

range of supported unicode characters

將其設為大於u+9fa5的值

同時enable allow wide unicode characters on output選項

總結來說,修改內容有

kernel 需要修改配置如下

file systems --->

dos/fat/nt filesystems --->

(utf8) default iocharset for fat

-*- native language support --->

(utf8) default nls option

<*> simplified chinese charset (cp936, gb2312

<*> nls utf-8

make busybox-menuconfig

build/package/busybox/busybox-1.22.x.config

busybox修改配置

busybox settings --->

[*] support unicode

(200000) range of supported unicode characters

[*] allow wide unicode characters on output

儲存設定,編譯

shel終端可以顯示中文了:)

Qt5 嵌入式裝置QT5動態庫編譯,QT5移植

perl 5.8 or later python 2.7 or later c compiler supporting the c 98 standard sdk提供 編譯套裝 sudo apt get install build essential sudo apt get install git...

qt在嵌入式板子上的移植

一段時間沒弄這些東西,就感覺非常生疏 1,本以為只要在電腦上用qt creater構建好arm版本並交叉編譯生成可執行檔案就行了,乙個寒假回校後將可執行檔案考到板子上根本不行。還需要將編譯好的arm版qt拷到板子上。設定環境變數 搜了教程,全是有觸控螢幕的,但是我的班子直接接的hdmi的顯示器,不會...

嵌入式Linux下移植QT

2人收藏此文章,我要收藏 發表於1年前 2012 07 28 14 59 已有949次閱讀 共0 一 操作環境 ubuntu12.04 qt everywhere opensource src 4.8.2.tar.gz arm 2009q1 203 arm none linux gnueabi.bi...