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...