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

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

Published: 2013-01-20 / Last modified: 2013-01-23

2013年1月19日(土曜日)に 関東 Qt 勉強会 #11PTP さんの会議室で開催しました。

参加していただいたみなさん、お疲れさまでした。とても楽しかったです。

発表

Raspberry Piのクロスビルド環境構築 by @n_murakami1 さん

日本でも@IoriAyane さんが 試していたり@sazus さんが 名古屋の勉強会で発表されていますが、Raspberry Pi 上で Qt 5 を動かしてみたという発表でした。

とりあえず Qt 5 が動いたので、今後どんなものを作って遊ぶのか楽しみですね。

Continue reading...

仕事はじめ(ました)

Published: 2013-01-07

前の会社をやめることになったのは 第9回関東Qt勉強会 の直前だったので、それから5カ月ほど自分のやりたいことをやっていました。

Qt 5.0 に貢献

自分のやりたいことを中心に色々パッチを送ったりレビューをしたり していました。

Qt Developer Days 2012 North America に参加

2008年から参加していた Qt Developer Days ですが、2012年ははじめてゲストとして参加しました。報告は 第10回のQt勉強会 では発表したけどこのブログには書いてないなぁ。

Continue reading...

QtQuick の ListView.onAdd は Attached Signal

Published: 2013-01-06

onAdd のドキュメント ですが、ListView のドキュメントの中の「Attached Signal Documentation」というセクションにあります。

Attached と書いてある場合は、通常のプロパティやシグナルではなく、そのエレメントの子エレメント(や子となる Component)の中に以下ののように書くことになります。

Element.property: value
Element.onSignal: variant = value

ListView.onAdd の場合は ListView の delegate の中で使われることを想定しています。

アイテムが新規に追加された祭の処理を ListView の delegate で行いたい場合に、delegate の中で以下のように記述します。

ListView {
delegate: Item {
ListView.onAdd: { ... }
}
}

ListView の delegate はスクロールの位置に応じて動的に生成/破棄されるため、通常使用する Component.onCompleted は使用できません。

ListView.onAdd を使用した簡単なサンプルは以下のようになります。

import QtQuick 2.0

ListView {
width: 180
height: 360

model: ListModel { id: model }
delegate: Item {
id: delegate
width: ListView.view.width
height: 60
Rectangle {
x: 10; y: 10; width: 60 - 20; height: delegate.height - 20
color: model.color
}
Text { anchors.verticalCenter: parent.verticalCenter; x: 60; text: model.color }

ListView.onAdd: SequentialAnimation {
NumberAnimation { target: delegate; property: 'height'; from: 0; to: delegate.height; duration: 200; easing.type: Easing.InOutQuad }
}
}

Timer {
interval: 500
repeat: true
running: true
onTriggered: {
model.insert(0, {'color': Qt.rgba(Math.random(), Math.random(), Math.random(), 1.0).toString()})
}
}
}

Qt による Qt のためのウェブサーバー Silk

Published: 2013-01-06

Qt Project で使われているウェブインターフェースの一覧

以下のように、Qt Project では開発やコミュニティの運営などを行うため、様々なシステムが活用されています。

http://qt-project.org/
ExpressionEngine という CMS で、PHP で作られています。
http://lists.qt-project.org/
Mailman というメーリングリストのシステムです。ウェブのインターフェースは Python で作られています。
https://bugreports.qt-project.org/
JIRA というバグトラッキングシステムで、Java で開発されています。
https://codereview.qt-project.org/
Gerrit というコードレビューツールで、Java で開発されています。
http://builds.qt-project.org/
Jenkins という CI ツールで、Java で開発されています。
http://planet.qt-project.org/
rawdog という RSS 収集ツールで、Python で開発されています。

このように様々な言語で作られたシステムを色々使っているわけですが、全てをメンテナンスし続けるのはとても大変で、Python のエンジニアを雇ったり、Java のコードが分かる人に強力を仰いだりしてきました。Qt Project の中には Qt のプログラムができる人は山ほどいるのでこれらのものが Qt で書かれていたらと思ったことのある人は少なくないと思います。

Continue reading...

qt-components-ubuntu を Gentoo Linux で動かしてみた

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

Blackberry 10 の Cascades で Qt が採用されたり、元 MeeGo の人たちが Jolla という会社を作って Seilfish というプラットフォームで Qt を使ったり、Digia が Qt 5 の Android、iOS、Windows 8 対応をコミットしたりと、2013年はさらに Qt は様々なところで活躍しそうな予感がします。

そんな中、Qt 5 を採用した Ubuntu for phones の発表がありました。

Qt 5 の QtQuick 2.0 でユーザーインターフェースができているだけあって、綺麗なデザインでスムーズに動作しているように見えます。

そんな中、

というつぶやきを見てしまったので、自分でも試してみることにしました。

Continue reading...