4月27日(土) に開催された Qt 勉強会 @ Nagoya #27 - connpass に久しぶりに参加しました。
そのまとめです。
つぶやきは Qt 勉強会 @ Tokyo # 70 + @ Nagoya # 27 まとめ #qtjp にまとまってます。
自己紹介
毎回の通り、自己紹介と本日やることを宣言。
自分の本日のやること
- 動画からフレームを切り出し動画のメタ情報とフレーム位置に応じた時刻を設定するツールを実装
機能
- 動画から複数のフレームを選んで画像として抜き出すことができる
- 抜き出した画像には動画のメタ情報を設定できる
- メタ情報としてフレームの位置に応じた時間情報を設定する
課題
- フレームをプレビューする際の大量の画像をどうするか?
- フレームの抜き出しや、メタ情報の取得、設定などをどう実現するか?
- 基本的には
ffmpeg
やexiftool
などを使えばいいが、コマンドを叩く方向性で行くと別のプラットフォームで困るので最終的にはライブラリを使いたい
本日の知見
DropAreaについて
DropArea.keys
と DragEvent.hasXXX
との関係
DragEvent | DropArea.keys |
---|---|
.hasColor == true | |
.hasHtml == true | text/html たぶん |
.hasText == true | text/plain |
.hasUrls == true | text/uri-list |
DropArea.keys
は DragEvent.keys
の値をフィルタするもの。
ファイルの内容をもとにMIMEタイプが設定され(そもそもされない)、それをフィルタするわけではない。
Qt Creator でデバッグ対象のアプリを一つのみ起動させる方法
Qt Creatorの「設定」→「ビルドと実行」→「ビルド前にアプリケーションを停止する」で設定できる!
.qml と .ui.qml
.qml
はJavaScriptのコードを書いたりコンポーネントをレイアウトしたりなんでもできる。
.ui.qml
は .qml
でできることの一部、コードを書いたり、が制限されているが、代わりにデザインツールを使い、GUIでレイアウトを変更できる。
デザインツールではJavaScriptでイベント処理をかけない代わりに、状態遷移ごとのレイアウトを設定できる。
ファイル書き出しなしでのサムネイルの生成
どうも ffmpeg で標準出力に画像を書き出せ、かつ QML でもオンメモリにダイレクトでファイルを書き出せるらしい?
本日の進捗
思うようにファイルのドロップがうまくいかずなかなか進まなかったが、結局のところわかれば簡単なことで、要するにドキュメントはちゃんと読もうねって話だった。
デザインツールで画面を作ってくと割とサクサク画面ができるのでもっと活用していきたい。
あと、 .qml
と .ui.qml
の使い分けとかもパターン化を自分の中で作っていければ、サクサク進められそうな感じがした。
あと、個人的には Visual Studio みたいにデバッグ対象のアプリケーションが1つのみ立ち上がってくれる設定を見つけたのが一番嬉しかったりする。