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

QtQuick で全角文字を半角に変換する

Published: 2013-03-28 / Last modified: 2013-03-28

はじめに

昨日書いた Qt 5 で全角文字を半角に変換する #01 に以下のようなフィードバックがありました。

ここでいう「プラグイン」というのは QNeptunea という Nokia N9 上で動く Twitter Client の機能を拡張するプラグインで、「苦労」とは これ とか これ の変更のことを指しています。

パッチ を見てもらえるわかるかと思いますが、実際にこの機能の実装は 20行程度 で、Qt のバージョンに依存するようなコードではないので、Qt 4 でも簡単に同じ事が実現できます。

作ったもの

ということで、QtQuick 1.x から Transliterate するような 簡単なサンプルを作ってみました 。取得の仕方などは http://qtquick.me/ の「Readonly access」を参照してください。

import QtQuick 1.1
import me.qtquick.transliterator 0.1

Text {
id: halfwidth
Transliterator {
id: transliterator
type: 'Fullwidth-Halfwidth'
}
Component.onCompleted: halfwidth.text = transliterator.transliterate('123ABC')
}

のように使うことができます。便利ですね。

Continue reading...

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

Published: 2013-03-27 / Last modified: 2013-03-28

きっかけ

実は仕事で扱っている、あるテキストデータの日付の項目に「03/27」と全角で書いてあって5回くらいためいきをついた後のつぶやきなのですが、Qt には全角英数を半角化したり、ひらがなをカタカナに変換するような機能はありません。

変換するコードを書いてみる

unicode の FF00~FFEF(.pdf)0000~007F(.pdf) を参考に全角の記号と数字、アルファベット(大文字と小文字)を半角にするコードを書くと以下のようになります。

static QString fullWidth2halfWidth(const QString &str)
{
    QString ret = str;

    for (ushort i = 0xFF01; i < 0xFF5F; ++i) {
        ret = ret.replace(QChar(i), QChar(i - 0xFEE0));
    }

    return ret;
}

全角カタカナ、全角句読点も変換や、逆変換も同じようなコードで対応できるでしょう。

Continue reading...

Qt 5.1 に HMAC 対応が入っていたのでメモ

Published: 2013-03-21 / Last modified: 2013-03-21

Qt の開発メーリングリストで今年のはじめに Playground: Crypto module という議論があったのですが、それを見逃していたのでメモ。

Qt 5 対応の QCA 的なライブラリが欲しくて色々探していたら、Qt 5.1 から HMAC のサポートが QtCore に入る ということがわかりました。

新たに QMessageAuthenticationCode というクラスが追加され、以下のように簡単に HMAC-SHA1() が計算できるようになります。

QByteArray key = "key";
QByteArray message = "The quick brown fox jumps over the lazy dog";
...
QMessageAuthenticationCode code(QCryptographicHash::Sha1);
code.setKey(key);
code.addData(message);
code.result().toHex();      // returns "de7c9b85b8b78aa6bc8a7a36f70a90701c9db4d9"

簡易的に以下のように書くことも可能です。

QMessageAuthenticationCode::hash(message, key, QCryptographicHash::Sha1).toHex();

Continue reading...

Qt for iOS の紹介

Published: 2013-03-06 / Last modified: 2013-03-06

Qt BlogQt for iOS Preview という記事が投稿されました。

Qt の iOS サポートは今春リリース予定の 5.1 でプレビュー的なものが提供され、今秋リリース予定の 5.2 で一応正式になる予定とのことです。

※去年末の Qt Developer Days での展示の様子(2:15 くらいから Qt for iOS のデモが見られます)

Continue reading...

QCon Tokyo 2013 で Qt 5 についての講演をします

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

2013年4月23日(火)に JA共済ビル カンファレンスホール で開催される QCon Tokyo 2013 で、Qt のお話をさせていただくことになりました

QCon Tokyo は、最新技術を追い求めるデベロッパのための情報コミュニティ 「InfoQ」が主催する、エンジニアによるエンジニアのためのハイクオリティなワールドワイド カンファレンスです。

以前より、QCon tokyo で Qt の話をしたいなーと思っていたので、本当に楽しみにしています。

参加される方は http://qcontokyo.com/registration.html から登録お願いします。有料のイベントになります。

Qt ブースの展示を手伝っていただける方は 関東 Qt 勉強会のグループ でお知らせください。

FolderListModel の showDotAndDotDot の修正

Published: 2013-02-25 / Last modified: 2013-02-25

という話があったので、バグレポートを書いてパッチをプッシュ してみました。

こっちは Linux では再現しないようなのでだれか調べてくれる人募集中。

関東Qt勉強会 #12 開催しました

Published: 2013-02-17 / Last modified: 2013-02-17

2013年2月16日(土曜日)に 関東 Qt 勉強会 #12豆蔵 さんのトレーニングルームで開催しました。

今回は発表などは募集せずに、「もくもく(と好きな事をするスタイル)」で行いました。

フィードバック

最初に自己紹介をしたときに、「今日すること」を発表したのだから、最後にも「今日やったこと」を発表したほうがよかったんじゃない?という意見を多数いただきました。次回はそうしましょう。

参加した方で、その他にもこんなことしてみたい!というアイデアがあればお知らせ下さい

次回予告

2013年3月23日に 関東Qt勉強会 #13 #qtjp を行います。気軽に参加してください。

Continue reading...