Qtリファレンス QTextCodec 新しいページはコチラ

提供: yonewiki
移動: 案内, 検索
(概要)
 
1行: 1行:
== '''概要''' ==
+
[[Qt#Qtリファレンス|Qtリファレンス]]へ戻る
 #include<QTextCodec>
+
== '''QTextCodec 概要''' ==
 +
 Qt5.15.2
  
*<span style = "background:linear-gradient(transparent 75%, #ffbf7f 75%); font-weight:bold; ">void QTextCodec::setCodecForLocale(QTextCodec* QTextCodecLocale)</span>
+
 #include<QTextCodec>をインクルードする必要があります。
 void QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
+
  
 こんな感じで、テキストのCodecを定義が出来て、文字コードUnicodeのエンコード方式UTF-8を使うことを定義できます。QTextCodec型のクラスにQTextCodec型の引数を受け取るという形式です。
+
 QTextCodecクラスは純粋仮想関数を含んでいます。継承して純粋仮想関数(name, mibEnum, convertToUnicord, convertFromUnicode)を新規に定義したクラスを作らないとQTextCodecの実体を作ることは出来ません。以下のようにメンバ関数だけを使うことは簡単に出来ます。
  
*<span style = "background:linear-gradient(transparent 75%, #ffbf7f 75%); font-weight:bold; ">QTextCodec* QTextCodec::codecForName(const char* name)</span>
 
  
 この一つ前に出てきたQTextCodecクラスのメンバ関数の引数に使うもので、引数には文字コードのエンコード方式を指定します。設定できる値は
+
=== '''静的 static''' ===
 +
 obj.xxxx()のように呼び出すのではなく、QTextCodec::xxxx()のようにして実体化されてなくても使える関数
 +
==== '''静的メンバ関数 setCodecForLocale''' ====
 +
*<span style = "background:linear-gradient(transparent 75%, #ffbf7f 75%); font-weight:bold; "><span style="color:deeppink;">void</span> <span style="color:blue;">QTextCodec::setCodecForLocale</span>(<span style="color:deeppink;">QTextCodec*</span> QTextCodecLocale);</span>
 +
 
 +
 
 +
 <span style="color:deeppink;">void</span> <span style="color:blue;">QTextCodec::setCodecForLocale</span>(<span style="color:blue;">QTextCodec::codecForName</span>("UTF-8"));
 +
 
 +
 こんな感じで、テキストのCodecを定義が出来て、文字コードUnicodeのエンコード方式UTF-8を使うことを定義できます。これはQtライブラリで扱う文字に対して、入力として受け取った文字列を自動判別した文字コードをUTF-8へエンコードするという事を宣言するもので、Qtライブラリ内で扱う文字列をICUライブラリを通して、変換して扱うということを意味しています。Qtプロジェクトを立ち上げた時に生成されるQCoreGlobalDataというクラスのオブジェクトでコーデック名称が記憶されるようです。
 +
 
 +
 
 +
 QTextCodecクラスのメンバ関数setCodecForLocaleの引数にQTextCodec型の戻り値の関数 or QTextCodec型のオブジェクトを指定する形式です。上記の例では以下で説明するようなQTextCodec型の戻り値を持つ関数を引数にしています。
 +
 
 +
==== '''静的メンバ関数 codecForName''' ====
 +
*<span style = "background:linear-gradient(transparent 75%, #ffbf7f 75%); font-weight:bold; "><span style="color:deeppink;">QTextCodec*</span> <span style="color:blue;">QTextCodec::codecForName</span>(<span style="color:deeppink;">const QByteArray&</span> name)</span>
 +
*<span style = "background:linear-gradient(transparent 75%, #ffbf7f 75%); font-weight:bold; "><span style="color:deeppink;">QTextCodec*</span> <span style="color:blue;">QTextCodec::codecForName</span>(<span style="color:deeppink;">const char*</span> name)</span>
 +
 
 +
 
 +
 この一つ前に出てきたQTextCodecクラスのメンバ関数の引数に使うもので、上の例の使い方の場合だと一つ目に書いた引数のカタチ(const char*)になっていて引数には文字コードのエンコード方式を指定します。設定できる値は
 
 
 
 
  
25行: 42行:
 
ISO 8859-1 to 10/ISO 8859-13 to 16/Iscii-Bng, Dev, Gjr, Knd, Mlm, Ori, Pnj, Tlg, and Tml/KOI8-R/KOI8-U/Windows-1250 to 1258
 
ISO 8859-1 to 10/ISO 8859-13 to 16/Iscii-Bng, Dev, Gjr, Knd, Mlm, Ori, Pnj, Tlg, and Tml/KOI8-R/KOI8-U/Windows-1250 to 1258
  
 +
 で、ほぼ全てのコーデックに対応しているといって良いしょう。上記以外の文字を使っているOSがあったら、そんなもの無くなってしまえと思うのだろう。
 +
 +
 ※const QByteArray &nameを引数にとる多重定義もされています。
 +
 +
 ※Qt4ではQTextCodec::setCodecForLocaleではなくQTextCodec::setCodecForCStringという名前でした。
 +
 +
 
 +
 +
==== '''静的メンバ関数 availableCodecs''' ====
 +
*<span style = "background:linear-gradient(transparent 75%, #ffbf7f 75%); font-weight:bold; "><span style="color:deeppink;">QList<QByteArray></span> <span style="color:blue;">QTextCodec::availableCodecs</span>()</span>
 +
*<span style = "background:linear-gradient(transparent 75%, #ffbf7f 75%); font-weight:bold; "><span style="color:deeppink;">QList<int></span> <span style="color:blue;">QTextCodec::availableMibs</span>()</span>
 +
 +
 
 +
 +
==== '''静的メンバ関数 codecForHtml''' ====
 +
*<span style = "background:linear-gradient(transparent 75%, #ffbf7f 75%); font-weight:bold; "><span style="color:deeppink;">QTextCodec*</span> <span style="color:blue;">QTextCodec::codecForHtml</span>(<span style="color:deeppink;">const QByteArray&</span> ba, <span style="color:deeppink;">QTextCodec*</span> defaultCodec)</span>
 +
*<span style = "background:linear-gradient(transparent 75%, #ffbf7f 75%); font-weight:bold; "><span style="color:deeppink;">QTextCodec*</span> <span style="color:blue;">QTextCodec::codecForHtml</span>(<span style="color:deeppink;">const QByteArray&</span> ba)</span>
 +
 +
 
 +
 +
==== '''静的メンバ関数 codecForLocale''' ====
 +
*<span style = "background:linear-gradient(transparent 75%, #ffbf7f 75%); font-weight:bold; "><span style="color:deeppink;">QTextCodec*</span> <span style="color:blue;">QTextCodec::codecForLocale</span>()</span>
 +
 +
 
 +
 +
==== '''静的メンバ関数 codecForMib''' ====
 +
*<span style = "background:linear-gradient(transparent 75%, #ffbf7f 75%); font-weight:bold; "><span style="color:deeppink;">QTextCodec*</span> <span style="color:blue;">QTextCodec::codecForMib</span>(<span style="color:deeppink;">int</span> mib)</span>
 +
 +
 
 +
 +
==== '''静的メンバ関数 codecForUtfText''' ====
 +
*<span style = "background:linear-gradient(transparent 75%, #ffbf7f 75%); font-weight:bold; "><span style="color:deeppink;">QTextCodec*</span> <span style="color:blue;">QTextCodec::codecUtfText</span>(<span style="color:deeppink;">const QByteArray&</span> ba, <span style="color:deeppink;">const QTextCodec*</span> defaultCodec)</span>
 +
*<span style = "background:linear-gradient(transparent 75%, #ffbf7f 75%); font-weight:bold; "><span style="color:deeppink;">QTextCodec*</span> <span style="color:blue;">QTextCodec::codecUtfText</span>(<span style="color:deeppink;">const QByteArray&</span> ba)</span>
 +
 +
 
 +
 +
[[Qt#Qtリファレンス|Qtリファレンス]]へ戻る
 
 
 
 

2021年2月14日 (日) 00:00時点における最新版



個人用ツール
名前空間

変種
操作
案内
ツールボックス