Qtリファレンス QTextCodec 新しいページはコチラ
提供: yonewiki
(ページの作成:「== '''概要''' == #include<QTextCodec> *QTextCodec::setCodecForLocale(QTextCodec* QTextCodecLocale) void QTextCodec::setCodecForLocale(QTextCodec::codecForName("U...」) |
|||
1行: | 1行: | ||
− | == '''概要''' == | + | [[Qt#Qtリファレンス|Qtリファレンス]]へ戻る |
− | + | == '''QTextCodec 概要''' == | |
+ | Qt5.15.2 | ||
− | + | #include<QTextCodec>をインクルードする必要があります。 | |
− | + | ||
− | + | QTextCodecクラスは純粋仮想関数を含んでいます。継承して純粋仮想関数(name, mibEnum, convertToUnicord, convertFromUnicode)を新規に定義したクラスを作らないと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リファレンス]]へ戻る | ||