2015/11/04 0:28、小林 修 osamu-k@arion.ocn.ne.jp のメール:
2.Qtのメモリ管理について Qtのメモリ管理が難しい。時々落ちるが原因特定に手間取っている。 以下のポイントについて、説明を行いました。 ・QObjectの親子階層とヒープメモリ、子の自動解放について ・オブジェクトのOwnershipについて ・Implicit Sharing について ・遅延消去(deleteLater)について
他には WA_DeleteOnClose、closeEvent のオーバーライドがありますね。 それと Qt のスマートポインタ。
Implicit Sharing については、new をしてはいけない、QImage::bits() など での detach()、不要な detach() を抑制するコーディングイディオム、コンテ ナクラス、foreach での扱いなども押さえておくといいです。
実業務でQtを使っていても、これらについてはあまり知らない人もいて、 大事なポイントだと感じました。 後で、役に立ったと連絡をくれた人や、deleteLater 効果があったと 言ってくれた人もいて、好評な内容でした。
ここを抑えるのは大事です。
SRA の Qt 基礎トレーニングでは上記のことを実習を含めて詳しく説明しています。 オリジナルのトレーニングではそういう説明はしていませんが手を加えています。 ウェブサイトでここまで説明してるものはなく、Qt のリファレンスよりも詳しいで しょう。
3.Qt4 とQt5の違いについて 以下について確認しました。 ・ライセンス(LGPLのバージョン v2からv3へ) ・QPAによるマリチプラットフォーム対応 ・QWSが無くなったこと ・QtQuick2, QtWebEngine の導入 など 組込み系ではまだQt4が中心のようです。
ローエンドは Qt4 ですがハイエンドは Qt5 が中心に移っていると感じています。 Qt Quick2 と QtWebEngine は OpenGL があるので Qt4 ではもう難しいでしょうし、 Qt4 のバグは Qt5 で修正されてもバックポートされず、古いバグ報告なのでと 切り捨てられ続けています。新しいコンパイラバージョンや最近の OS への対応も されません。
4.他言語対応 これは大変だよね、という四方山話。 ・業務ではExcelで管理しているところが多い
そのために Qt の翻訳の仕組みは使わない場合が多いです。ではどうするかを説明するといいです。
・Linguist は翻訳担当者には敷居が高い
そのために XLIFF と相互変換できます。XLIFF に変換しカスタマイズして翻訳プロセスに適合させ たこともあります。
十数年 Qt を使われている日本の企業で専門の翻訳部門を抱えているところがあり、 翻訳担当者の方とお会いして Linguist は使いやすいと聞いる例もあります。先週聞いた ところでは今も使われています。プログラムはまったくされない方です。導入の仕方 もあるでしょう。
・画面数が多く、確認が大変、 など。
これは何を使っても同じではないでしょうか。Linguist ではフォームを使っているならば、 プレビューしながら、翻訳結果を確かめられるのはよいです。
後半は、Raspberry pi 2 用のQt5 のクロスビルドの方法について 私がやってみた内容の紹介と説明。 まだ途中なので、次回に続きをやる予定です。
次回は11月下旬を予定しています。
以上です。
小林 修 E-mail:osamu-k@arion.ocn.ne.jp
Qt-users mailing list Qt-users@qt-users.jp http://qt-users.jp/mailman/listinfo/qt-users