国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

解析 Qt 字庫移植并能顯示中文 (上篇)

移動開發
本文介紹的是Qt 字庫移植并能顯示中文,需要的字體庫文件,一般是多個。具體移植那一個,看你使用的字庫是什么了,先來看內容。

Qt 字庫移植并能顯示中文是本文介紹的內容,先來看內容,如何定制字庫移植字庫),需要將至少兩個文件賦值到 lib/font目錄下
   
1、fontdir 文件。這個是應用程序尋找當前系統中最合適自己需要的字庫的索引;

2、需要的字庫文件,一般是多個。具體移植那一個,看你使用的字庫是什么了,比如我現在的系統我就是移植的wenquanyi_12pt.bdf就可以了,當然這個比較大。你也可以用小點的。我的flash比較大呵呵,懶得折騰。

在程序中需要這樣設置:

  1. QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));  
  2.    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf8")); 

設置使用utf-8編碼也就是unicode編碼了,這樣在tr和string的都是unicode的編碼了,根據字庫的索引就能對應相應的字符了。

然后設置字體:

  1. //字體設置  
  2.      QFont font("wenquanyi",12,QFont::Bold); //使用wenquanyi字體  
  3.      this->setFont(font);  
  4. //這樣就設置了字體了,中文一般使用wenquanyi字體就可以了。很好的。 

基礎知識介紹:

字符編碼

1、字符必須編碼后才能被計算機處理。計算機使用的缺省編碼方式就是計算機的內碼。早期的計算機使用7位的ASCII編碼,為了處理漢字,程序員設計了用于簡體中文的GB2312和用于繁體中文的big5。在這些編碼中,中文和英文可以統一的處理,區分中文編碼的方法是高字節的***位為不為0。GB內碼的存儲方式始終都是big endian,即高位在前。

2、Unicode是一種字符編碼方法,它是由國際組織設計,可以容納全世界所有語言文字的編碼方案。Unicode的學名是"Universal Multiple-Octet Coded Character Set",簡稱為UCS。UCS可以看作是"Unicode Character Set"的縮寫。

Unicode與GB碼不兼容,只與ASCII兼容。

UCS規定了怎么用多個字節表示各種文字。怎樣傳輸這些編碼,是由UTF(Unicode transforation format)規范規定的。常見的UTF規范包括UTF-8(就是以8位為單元對UCS進行編碼)、UT F-7、UTF-16。
UTF-*和Unicode是同類,就是在編碼方式上不同。首先UTF編碼后的大小是不一定,不像Unicode編碼后的大小是一樣的。

字體庫:

一般認為,一個漢字的編碼就對應著這樣的字形,這還是錯誤的。內碼對于字庫來說,只是查找字形的索引。如果換成另一個編碼標準的字體,同一個字符串就會呈現不同的字形,也就是亂碼。
隨著GUI的發展,字庫逐漸轉向TTF.TTF字庫的編碼標準沒有UTF8的

由于工作需要把ttf字體轉換成qpf字體,牽扯到了qt的makeqpf工具的使用方法

先簡單說一下qt的字體支持

Qte可以支持以下四種形態的字體格式

  1. TrueType (TTF)、Postscript Type(PFA/PFB)、Bitmap Distribution Format fonts(BDF)、Qt Prerendered Font(QPF) 

Qt中不同字體是用Unicode來處理、轉換

因為Unicode(UTF16或者UTF8)最適合在任何人之間傳遞信息,

至于TrueType(不知道是什么東西,先唬著?)的支援,目前Qte采用的是FreeType2 Livrary來顯示字體,可充分享受無段式anti-aliased顯示。

經過下午的查證:Truetype是由AppleComputer公司和Microsoft公司聯合提出的一種新型數學字形描述技術。他用數學函數描述字體輪廓外形,含有字形構造、顏色填充、數字描述函數、流程條件控制、珊格處理控制、附加提示控制等指令。TrueType采用幾何學中二次B樣條曲線及直線來描述字體的外形輪廓,其特點是:TrueType即可以作打印字體又可以做屏幕顯示;由于它是由指令對字形進行描述,因此它與分辨率無關,輸出時總是按照打印機的分辨率輸出。無論放大或縮小,字符總是光滑的,不會有鋸齒出現。但相對PostScript字體來說,其質量要差一些,特別是在文字太小時,就表現得不是很清楚

簡單 一下:truetype,字體就是可以不變形放大的字體,標準的字體大約有三種。*.fon 、*.ttf 、*.ttc,你所問的就是*.ttf 、*.ttc是*.ttf的新標準。*.fon就是很久以前用的字體,dos下現windows還有少量,主要用在系統使用方面可以提高程序的執行效率

FreeType是一個免費的并且可以被移植的TrueType 字庫引擎,可以應用于很多平臺!

fontdir的簡介

下面是截取qtcore中默認的fontdir文件中的中文字庫部分

  1. #Chinese character font from http://wqy.sourceforge.net/en  
  2. wenquanyi wenquanyi_12pt.bdf BDF n 50 120 u  
  3. wenquanyi wenquanyi_13pt.bdf BDF n 50 130 u  
  4. wenquanyi wenquanyi_15pt.bdf BDF n 50 150 u  
  5. wenquanyi wenquanyi_16pt.bdf BDF n 50 160 u  
  6. wenquanyi wenquanyi_12ptb.bdf BDF n 75 120 u  
  7. wenquanyi wenquanyi_13ptb.bdf BDF n 75 130 u  
  8. wenquanyi wenquanyi_15ptb.bdf BDF n 75 150 u  
  9. wenquanyi wenquanyi_16ptb.bdf BDF n 75 160 u 

可以看到共有七列

  1. ***列:字體的名字,就是你在設置字體的時候的字體的名字  
  2. 第二列: (file)即具體的文件名字  
  3. 第三列: (renderer)字體的格式,有BDF,TTT,QPF等選擇.  
  4. 第四列: n 表示iitalic,是否為斜體  
  5. 第五列:weight, 50 = Nomal,75=Bold 
  6. 第六列: size 120表示12pt  
  7. 第七列flags 有三個選項:s   (smooth)  
  8.                               u   (unicode順序保存)  
  9.                                
  10.                              a   (ascii 順序保存,默認是Latin 1)。 

文件中每行都標識一個特定的字庫,每個段的含義是:***列為name,第二列為file,第三列為renderer,相當于字型格式,所以有 BDF,TTT,QPF等選擇。第四列n表示iitalic,表示是否為斜體字。第五列表示weight,其中50表示Normal,75表示Bold。第六列表示size,例如:120表示12pt。第七列為flags,有下面三個選擇:s=smooth(anti-aliased)u =unicode range when saving (default is Latin 1 a = ASCII range when saving(default is Latin 1))

其中屬性file,renderer(BDF,TTF,QPF)和size特別要設置對,其它屬性問題不大。還要注意如果在該目錄下有QPF的文件,系統只會使用QPF格式的文件,而不會讀取其它格式的文件,不管FONTDIR里面的內容是什么。如果有多個QPF文件,應用程序按照大小,家族,黑體和斜體的順序查找,即首先查找大小和自己一樣的字庫,大小無法區分唯一的字庫的再看對應的家族,還是無法區分的再看是否黑體,是否斜體。可以參考PC上的字庫索引文件FONTDIR:

例如:

  1. -cclib -song -medium -r -normal -jiantizi -16 -160 -75 -75 -c -160 -gb2312 1980-0

其中,每個段的含義如下:

  1. cclib:制造商  
  2. song:字體族,此處表示“宋體”字  
  3. medium:字權重(中等),還有bold(粗體)選項  
  4. r:傾斜,R(Roman),I(Italic),O(Oblique)  
  5. normal:字符集寬度,此外還有condensed,narrow,double  
  6. jiantizi:附加說明(此處意義為“簡體字”)  
  7. 16:用像素衡量的寬度。  
  8. 160:點數 10  
  9. 75(1):水平分辨率(dpi)  
  10. 75(2):垂直分辨率(dpi)  
  11. c:間距。c:square,m:fixed width,p:variable width  
  12. 160:平均寬度(10*pixels)  
  13. gb2312.1980:注冊字符集,標準名 

小結:解析 Qt 字庫移植并能顯示中文 (上篇)的內容介紹完了,希望本文對你有所幫助,想要深入了解,請參考 解析 Qt 字庫移植并能顯示中文 (下篇)

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-06-30 16:08:05

Qt 字庫 QPF

2011-06-22 14:30:44

QT 多線程 線程

2011-06-17 09:19:03

Qt 4.5.1 Sqlite 移植

2011-06-29 10:46:01

Qt Eembedded Linux

2011-06-21 15:48:41

2011-06-27 10:15:22

Qt 網絡 TCP

2011-06-24 13:08:34

Qt Qt 4.5.3 移植

2011-06-13 11:24:55

QT MPlayer 移植

2011-06-13 16:16:32

Qt 中文問題

2011-06-13 11:07:22

QT 移植

2011-07-05 18:32:52

QT 信號 機制

2011-06-23 16:24:21

Qt Embedded 交叉編譯

2011-07-01 14:14:34

Qt 事件

2011-04-07 17:39:57

Shapping

2011-04-07 17:27:52

Policing

2011-06-17 16:47:12

Qt Eclipse Windows

2011-06-17 13:18:17

Qt 文件

2011-06-09 16:47:56

Qt 嵌入式

2011-06-13 15:57:26

linux QT QTOPIA

2011-06-27 13:32:21

Qt 數據庫 QSqlQueryM
點贊
收藏

51CTO技術棧公眾號

精品剧情v国产在线观看在线| 欧美激情综合| a级片在线免费| 一二三四社区在线视频6| 日韩av地址| 黄色片在线看| 国产福利电影网| 午夜影院免费播放| 中文字幕一区免费| a天堂在线资源| 男男电影完整版在线观看| 激情综合闲人网| 日韩三级电影网| 最新电影电视剧在线观看免费观看 | 性色av香蕉一区二区| 欧美疯狂做受xxxx高潮| 欧美成人性战久久| 94色蜜桃网一区二区三区| 日韩一区亚洲二区| 99成人在线| 成人黄色在线网站| 一区二区不卡在线视频 午夜欧美不卡在| 久久99蜜桃精品| 国产亚洲欧美日韩日本| 中文字幕视频一区| 午夜电影网一区| 91精品国产91久久久久久最新毛片 | 成人看片爽爽爽| 成人免费毛片嘿嘿连载视频…| 欧美momandson| 日韩在线不卡| 豆花视频一区二区| 亚洲精品国产第一综合99久久| 在线播放日韩导航| 亚洲精品国产精品国自产观看浪潮| 欧美亚洲伦理www| 黄色99视频| 熟妇人妻va精品中文字幕 | 欧美在线视频一区| 97在线观看免费高清视频| 91在线播放网址| 无套内精的网站| 韩国美女久久| 香蕉av777xxx色综合一区| 精品久久久久久国产| 国产精品主播视频| 超碰成人免费在线| 丁香六月综合| 欧美a级在线| 日韩欧美第一页| 日韩亚洲精品视频| 国产精品入口芒果| 亚洲图色一区二区三区| 久久精品夜色噜噜亚洲a∨| www.久久久久久.com| 午夜啪啪福利视频| 日韩久久99| 9人人澡人人爽人人精品| 51精品国产黑色丝袜高跟鞋| 亚洲色图16p| 蜜桃久久av一区| 69国产精品成人在线播放| 电影av在线| 色婷婷精品久久二区二区蜜臀av | 中文字幕精品一区日韩| 99久久精品网| 精品88久久久久88久久久| 免费大片黄在线观看视频网站| 老汉色老汉首页av亚洲| 精品露脸国产偷人在视频| 一区二区三区四区欧美| 国产精品巨作av| 在线综合+亚洲+欧美中文字幕| 激情伊人五月天| 久久久精品网| 久久久久久久999| 一个人www视频在线免费观看| 国产精品12区| 精品奇米国产一区二区三区| 久久综合狠狠综合久久综青草| 不卡一本毛片| 欧美日韩一区 二区 三区 久久精品| 成人免费视频77777| 国产69精品一区二区亚洲孕妇| 51精品国产人成在线观看| 欧美羞羞视频| 日韩欧美在线视频| 久久久一本二本三本| 精品国产一区二区三区小蝌蚪 | 国产精品久久免费看| 国产乱码精品一区二区三区中文 | 国产欧美日韩综合精品一区二区 | 一本一道久久a久久精品逆3p| 日韩精品极品视频免费观看| 日韩欧美高清dvd碟片| 国产精品久久久久久久久图文区| 亚洲成人黄色在线| 国产精品区一区二区三在线播放| 在线看视频你懂的| 国产校园另类小说区| 日韩欧美成人午夜| 欧洲精品一区色| 超级碰碰久久| 日韩电影一二三区| www.日本久久久久com.| 国产在线黄色| 韩国三级电影一区二区| 国产真实乱子伦精品视频| 国产精品成人在线| 亚洲人体视频| 一本在线高清不卡dvd| 国产精品日韩三级| 亚洲电影激情视频网站| 亚洲另类图片色| 中文字幕在线视频网| 日韩精品免费视频人成| 国产一区二区三区毛片| 日本中文字幕网址| 日韩国产一级片| 视频一区二区在线播放| 精品自拍视频在线观看| 九九九九久久久久| 伊人久久高清| 成人一区二区在线观看| 5252色成人免费视频| 免费高清视频日韩| 伊人久久大香线蕉av超碰演员| 综合在线观看色| 新呦u视频一区二区| 深夜激情久久| 狠狠躁夜夜躁久久躁别揉| 成人精品久久av网站| 狠狠久久综合| 亚洲人成影院在线观看| 国产欧美一区二区白浆黑人| 欧美女优在线观看| 麻豆精品在线播放| 2018日韩中文字幕| 欧美日韩欧美| 国产伦理一区| 久久色免费在线视频| 91网页在线看| www.豆豆成人网.com| 色悠悠久久88| 在线影院av| 日韩精品免费专区| 亚洲热线99精品视频| 日韩中文字幕在线不卡| 中文字幕一区二区av| 亚洲777理论| 欧美激情视频一区二区三区| 日韩精品看片| 欧美日韩欧美一区二区| 中文字幕欧美人与畜| 亚洲国产专区校园欧美| 欧美成人免费网| 黄色的视频在线观看| 久久久.com| 日韩精品资源| 国产欧美一区二区色老头| 国产精品18久久久久久麻辣| 亚洲免费成人av在线| 97免费中文视频在线观看| 日韩av在线免费观看不卡| 欧美日韩伦理片| 国语自产精品视频在线看| 99综合在线| 在线成人私人影院| 老汉色老汉首页av亚洲| 99国产高清| 亚洲先锋成人| 欧美激情国产日韩| 一区二区三区久久久| 天堂色在线视频| 91福利社在线观看| 99不卡视频| 国产a精品视频| 九色91在线视频| 激情欧美一区| 一区在线电影| 国产一区二区三区精品欧美日韩一区二区三区 | 日本在线中文电影| 日韩毛片视频在线看| 免费毛片小视频| 毛片一区二区| 欧美日韩成人一区二区三区 | 成人精品在线| 午夜精品在线视频| 日韩视频二区| 亚洲国产日韩综合一区| 99精品在线免费| 日本蜜桃在线观看| www.xxxx欧美| 国产欧美大片| 久久99国产精品一区| 中文字幕在线一区| 99riav视频在线观看| 国产精品电影在线观看| 青青草精品视频| 黄色污污在线观看|