名古屋Qt勉強会#31.1 に参加しましたpost

2019年11月23日(土) に開催された Qt 勉強会 @ Nagoya #31.1 - connpass へ参加しました。

そのまとめです。

自己紹介

毎回の通り、自己紹介と本日やることを宣言。

初めて参加の方が一人いた。

久しぶりの開催なのと初めての人がいるためか開催の趣旨などが説明された。

@kazuo_asa さんによる発表

@kazuo_asa による

  • はじめてのQt入門 シグナルとスロット

の発表がありました。

自分の本日のやること

  • 前回の続きの動画からフレームを切り出し動画のメタ情報とフレーム位置に応じた時刻を設定するツールを実装

前回までの状況

  • UIの実装途中

本日の知見

PATH環境変数

QtCreator で値を上書きできるので、コンソールでの実行結果と違うことがある...

シグナル/スロットでの接続タイプ

オプションで指定できたみたい... 知らなかった...

enum Qt::ConnectionType より

ConstantValueDescription
Qt::AutoConnection0(デフォルト)シグナルを発信するスレッド内にレシーバーが存在する場合、Qt::DirectConnection が使用されます。それ以外の場合、Qt::QueuedConnection が使用されます。接続タイプは、信号が発信されるときに決定されます。
Qt::DirectConnection1スロットは、信号が発信されるとすぐに呼び出されます。スロットはシグナリングスレッドで実行されます。
Qt::QueuedConnection2スロットは、制御がレシーバーのスレッドのイベントループに戻るときに呼び出されます。スロットは受信者のスレッドで実行されます。
Qt::BlockingQueuedConnection3Qt::QueuedConnection と同じです。ただし、シグナルスレッドは、スロットが戻るまでブロックします。レシーバがシグナリングスレッドに存在する場合、この接続を使用しないでください。使用すると、アプリケーションがデッドロックします。
Qt::UniqueConnection0x80これは、ビット単位のORを使用して、上記の接続タイプのいずれかと組み合わせることができるフラグです。 Qt::UniqueConnection が設定されている場合、接続が既に存在する場合(つまり、同じオブジェクトの同じペアの同じスロットに同じ信号が既に接続されている場合)、QObject::connect() は失敗します。このフラグはQt 4.6で導入されました。

本日の進捗

  • 前回の続きを思い出すところからスタート
  • QProcess::start() で絶対パスではなく ffmpeg だけでコマンドが呼び出せないのを調べていたが、結局 QtCreater の設定に追加することで解決
  • あとは QML で 思った UI の表現がうまくいかなかったのでそれを実現するためにサンプルを作ってたりしてタイムアップ

なかなかに、思ったUIを作るのが難しい...

メモ

参考


   /   変更履歴  /   Permalink  /  このエントリーをはてなブックマークに追加 
 カテゴリ: ブログ  /   タグ: C++, Qt, 雑記, 勉強会, QtQuick, ffmpeg, FrameExtract