Qt 5 の未来は明るいブログ

Qt 5 で全角文字を半角に変換する #02

Published: 2013-04-01 / Last modified: 2013-04-01

Qt 5 で全角文字を半角に変換する #01 で実験的に実装した、QString::transliterate(QString type) の設計や実装 がとてもアドホックだったので、もう少し Qt っぽい作りにしてみました。

新しいパッチは Change Ib8904c1e: WIP: add QTransliterator です。QString にメソッドを追加するのではなく、専用のクラスを作成しました。

今回のパッチには、ユニットテスト も追加してみました。

使い方は以下のようになります。

#include <QtCore/QTransliterator>
...
QTransliterator transliterator;
transliterator.setType(QStringLiteral("Halfwidth-Fullwidth"));
transliterator.transliterate(QStringLiteral("012")); // 012

作り的に QtQuick で全角文字を半角に変換する と同じになっているため、qmlRegisterType をすると QtQuick からも使えるようになります。