freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

develop環(huán)境下qt中文化程序設(shè)計-文庫吧

2025-04-17 18:36 本頁面


【正文】 Name(GBK); /*當(dāng)前編碼為GBK*/ QTextStream mystream(amp。file); (codec); amp。QString QCString 中不以 unicode 編碼 QString 以 unicode 為編碼 . qt 內(nèi)部使用 unicode 為編碼 ,所以如果要在 qt的部件如 multilineedit 中顯示中文 ,則需要將非 unicode 的字符轉(zhuǎn)換成 unicode 字符 . QCString locallyEncoded=中國人不是東亞病夫 ; //text to convert QTextCodec*codec=QTextCodec: codecForName(GBK); //get the codec for GBK QString unicodeString=codectoUnicode(locallyEncoded); 國際化編程 內(nèi)容: 的文本顯示 的文本輸入 的打印 于明儉 2021 年 1月 09 日 本篇討論 Qt 庫對國際化的支持,將介紹 Qt 對文本顯示,輸入和打印的支持,和如何使用 Qt 開發(fā)國際化的軟件。 Qt 目前的版本 ()對國際化的支持已經(jīng)相當(dāng)完善。在文本顯示上, Qt使用了 Unicode 作為內(nèi)部編碼,可以同時支持多種編碼。為 Qt 增加一種編碼的支持也比較方便,只要增加該編碼和 Unicode 的轉(zhuǎn)換編碼便可以了。 Qt 目前支持 ISO 標(biāo)準(zhǔn)編碼 ISO 88591, ISO 88592, ISO 88593, ISO 88594, ISO 88595, ISO 88597, ISO 88599,和 ISO 885915(對于阿拉伯語和希伯來語的支持正在開發(fā)之中 ),中文 GBK/Big5,日文 eucJP/JIS/ShiftJIS,韓文eucKR,俄文 KOI8R。當(dāng)然也可以直接使用 UTF8 編碼。 Qt 使用了自己定義的 Locale 機制,在編碼支持和信息文件 (Message File)的翻譯上彌補了目前 Unix 上所普遍采用 Locale 和 gettext 的不足之處。 Qt 的這種機制可以使 Qt 的同一組件 (QWidget)上同時顯示不同編碼的文本。比如,Qt的標(biāo)簽上可以同時使用中文簡體和中文繁體文本。 在文本輸入上, Qt 采用了 XIM(X Input Method)標(biāo)準(zhǔn)協(xié)議,可以直接使用XIM 輸入服務(wù)器。由于目前的絕大多數(shù)輸入服務(wù) 器都是針對單一語言的,所以在 Qt 的標(biāo)準(zhǔn)輸入組件 (QLineEdit, QMultiLineEdit)中的輸入受到單一編碼的限制, Qt 還不支持動態(tài)切換編碼輸入的支持,這是它的不足之處。 的文本顯示 像普通的國際化過程一樣, Qt 使用了類似 GNU gettext 一樣的函數(shù)QObject: tr(),它用于從 Qt 的信息文件 .qm 中取出信息,這些信息是經(jīng)過 Qt的工具處理的。 Qt 在處理編碼時還使用了 QTranslator 類,可用于指定整個應(yīng)用軟件的的信息文件。 使用 Qt 編寫國際化的程序,最好不要在程序中直接使用特殊 編碼的文本。比如要編寫一中文界面的 Qt程序,應(yīng)該在程序中使用英文,程序編寫完成后,把文本提取出來翻譯。這樣,程序還可以根據(jù) Locale 的不同,支持多種語言。下面介紹如何在 Qt 程序中標(biāo)注字符串,如何提取并翻譯文本。 下面是一段使用了 QObject: tr()的代碼,它建立了一個彈出菜單,菜單項是 Quit,它被放置在菜單條上,在菜單條上顯示的是標(biāo)簽 File。 QPopupMenu*popup; popup=new QPopupMenu(this); popupinsertItem(tr(amp。Quit), qApp, SLOT(quit())); menubarinsertItem(tr(amp。File), popup); 對于絕大多數(shù)情況,可以用上述方法處理。不過有時在定義某些變量中使用的字符串,不能使用上述方法,但是為了讓 Qt 提取并翻譯該字符串,必須用某種方法標(biāo)志出來。 Qt 定義了 QT_TR_NOOP()和 QT_TRANSLATE_NOOP()來標(biāo)志它們。前者用于單個字符串,后者用于多個字符串。比如, static const char*strings={ QT_TR_NOOP(Hello), QT_TR_NOOP(World) }; 有時需要使用 printf/sprintf 之類的函數(shù)動態(tài)生成字符串,比如, QStings s; (Button%d, i); butsetText(s); 對這種使用方式的國際化是使用 arg()函數(shù)。 QString s=tr(Button%1).arg(i); butsetText(s); 提取上述信息的方法是使用 Qt 提供的工具 findtr 命令: findtr[filename].cpp 它類似于 GNU 的 xgettext,上 述文件的提取信息文件內(nèi)包含, . ContentType: text/plain; charset=iso88591\n : : 34 msgidExampleWidget: amp。File msgstr . 接下來是文本翻譯過程。在 Qt 中翻譯信息文件時應(yīng)該注意以下事項: (1)提取的信息文件的編碼是 iso88591,在翻譯成某種語言 (編碼 )時應(yīng)該注意改動它的字符集,比如對中文 GB2312 和 Big5 編碼,應(yīng)該是, ContentType:text/plain; charset=gb2312\n或者 ContentType: text/plain;charset=big5\n。 (2)提取
點擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1