使用 TouchGFX Designer 的textArea控件很容易顯示不同字體的文字,可是如果想顯示中文,則需要做相應的配置,否則會出亂碼,見下面這個例子:
如上圖,添加一個textArea控件, 輸入一串文字:“你好 TouchGFX”,在Designer中中文是可以正常顯示的。
同時,特意將40號大小的Large字體的 Fallback Character 屬性由默認的 ? 改為 * 號(后面會看到它的作用),Ctrl+S 保存工程,然后 Browse Code,在VC環境中編譯、運行,結果如下:
“你好”2個中文字沒有顯示出來呀?!對應的,顯示了2個 * 號(這正是圖二中配置的)!難道是VC模擬器的問題?用IAR重新編譯、燒寫到 STM32F769I-DISCO 開發板中(如何在IAR中正確燒寫片外flash,見上一篇文章),結果也是亂碼:
原因在哪里?
回到Designer中,這里要重點說說?Typography?這個概念,網絡上一般翻譯為 “字體排印” ,我稱之為 “字體類”,它包含了一種字體的名稱、大小、色深、通配符等屬性,TouchGFX中顯示的任何文字,不論英文還是中文,必定屬于某一種字體。只是,Designer默認的任一 字體類 的字體是 Verdana ,這是一種西文字體,是不支持中文顯示的,所以造成亂碼:
圖五中,字體類Large 的 Font 是 Verdana,只能顯示西文(但Designer的界面上能顯示 “你好” 這2個中文字,呵呵了)。為了顯示中文,就得設定中文字體 ---- 創建一個字體類,并且將它的 Font 設置為一種中文字體。在圖五中,點擊綠色框框中的 ADD NEW TYPOGRAPHY 按鈕,彈出一個創建字體類的窗口:
為新字體類取個名字:Typography_cn,在 Font 下拉列表中,選擇 YouYuan,即 幼圓字體 (當前的Designer 4.10版本界面貌似不支持中文,呵呵了)即可:
在textArea控件中重新設置Typography:
保存工程,再次啟動VC、運行模擬器,中文顯示正常了:
這是下載到目標板運行的情況:
TouchGFX是支持多語言界面的(multi language interfaces),即界面可以在多個語言之間切換,需要創建新的 Resource :
如何實現多語言支持,將來另文介紹,本文完。
補記:有關中文字體的擴充內容,請見文章:《TouchGFX基礎:再談中文顯示》。