Qt勉強会 @Osaka の小林です。 だいぶ遅れてしまいましたが、10/17 のQt勉強会 @Osaka の報告です。
2015-10-17(土)13:00 - 17:00 株式会社SRA 関西事業部 会議室
参加者 11名 うち、業務で使用している方 7名
内容: 前半は、実際に利用している方々からの質疑応答
1.ビジュアライゼーション 大容量の3Dグラフィックスデータ(2〜3億点,数十Gバイト)のビューアを探している。 QVTKWidgetを試している。 http://www.vtk.org/Wiki/VTK/Examples/Cxx/Qt/RenderWindowUIMultipleInheritanc... http://www.vtk.org/Wiki/VTK/Examples/Cxx/Qt/RenderWindowUIMultipleInheritance http://doc.qt.io/QtDataVisualization/ http://doc.qt.io/QtDataVisualization/ HDF ファイルフォーマットをopenGLにインポートできないか https://www.hdfgroup.org/ https://www.hdfgroup.org/ 残念ながら、この会では具体的な回答はできませんでした。
2.Qtのメモリ管理について Qtのメモリ管理が難しい。時々落ちるが原因特定に手間取っている。 以下のポイントについて、説明を行いました。 ・QObjectの親子階層とヒープメモリ、子の自動解放について ・オブジェクトのOwnershipについて ・Implicit Sharing について ・遅延消去(deleteLater)について 実業務でQtを使っていても、これらについてはあまり知らない人もいて、 大事なポイントだと感じました。 後で、役に立ったと連絡をくれた人や、deleteLater 効果があったと 言ってくれた人もいて、好評な内容でした。
3.Qt4 とQt5の違いについて 以下について確認しました。 ・ライセンス(LGPLのバージョン v2からv3へ) ・QPAによるマリチプラットフォーム対応 ・QWSが無くなったこと ・QtQuick2, QtWebEngine の導入 など 組込み系ではまだQt4が中心のようです。
4.他言語対応 これは大変だよね、という四方山話。 ・業務ではExcelで管理しているところが多い ・Linguist は翻訳担当者には敷居が高い ・画面数が多く、確認が大変、 など。
後半は、Raspberry pi 2 用のQt5 のクロスビルドの方法について 私がやってみた内容の紹介と説明。 まだ途中なので、次回に続きをやる予定です。
次回は11月下旬を予定しています。
以上です。
--------------------------------------------------------------------- 小林 修 E-mail:osamu-k@arion.ocn.ne.jp mailto:k@arion.ocn.ne.jp ---------------------------------------------------------------------
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
杉田さん、小林です。 丁寧なコメントをありがとうございます。
WA_DeleteOnClose やスマートポインタもありましたね。 実際、この2つには仕事でも助けられています。
Implicit Sharing は、Pattern Oriented Software Architectureなどの書籍でも 解説されていて、C++ の定番のイディオムのようですが、私は C++ に手を染める のが少し遅かったこともあって、Qt で初めて知りました。 Qt だとビジュアルなプログラミングで楽しみながら、こういうイディオムや パターンを学べるのが素晴らしいと思います。 また、Qt を使うことで、C++ 言語の良さが初めて理解できたと思えます。 Qt のコードやドキュメントには、他にもいろいろ、こういう「宝」が埋まって いるような気がします。 私の業務の忙しさもあって、なかなか定例化に至らない大阪の勉強会ですが そのあたりを少しすつでも掘り起こしていきたいと思います。
今回の杉田さんのメールには、大いに励まされました。
2015/11/04 19:09、Kenji Sugita kenji@j04.itscom.net のメール:
2015/11/04 0:28、小林 修 <osamu-k@arion.ocn.ne.jp mailto: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 mailto:Qt-users@qt-users.jp http://qt-users.jp/mailman/listinfo/qt-users http://qt-users.jp/mailman/listinfo/qt-users
Qt-users mailing list Qt-users@qt-users.jp mailto:Qt-users@qt-users.jp http://qt-users.jp/mailman/listinfo/qt-users http://qt-users.jp/mailman/listinfo/qt-users