Qt(キュート)プログラム実行まで[サンプル(後編)]

グリッドの作成

グリッドについて

各種ウィジェットのサンプル表示です。表示のみでイベント処理はありません。

グリッド作成関数 (mainwindow.cpp)

各種ウィジェットを作成してグリッドレイアウトに入れます。
土台のウィジェットを作ってグリッドレイアウトをセットし、戻り値として返します。

タブウィジェットの作成

タブについて

ウィジェットのサンプル表示とイベント処理です。
グループ・文書・画像・動画・暦と、テスト用の空タブがあります。

タブ作成関数の定義 (mainwindow.h)

それぞれのタブを作成する関数を定義します。

タブウィジェット作成関数 (mainwindow.cpp)

タブウィジェットを作って各タブをセットし、戻り値として返します。

グループタブの作成

グループタブについて

ラジオボタンとチェックボックスのサンプルです。 クリックするとオンの項目を表示します。

グループタブ関連定義 (mainwindow.h)

グループタブ作成 (mainwindow.cpp)

ラジオボタンをクリックした時の処理

イベントが発生したラジオボタンを取り出し、そのテキストを表示用のラベルにセットします。
※sender()にはシグナルの送信元(connect文の第1引数)が入っています。

チェックボックスをクリックした時の処理

イベントが発生したチェックボックスの親のグループボックスを取り出します。
その子供の中からチェックボックスだけ抽出し、オンのものだけテキストを表示します。
※レイアウトは親にならないので、チェックボックスの親はグループボックスになります。
※最後に末尾の改行コードを取り除いていますが、表示だけの問題なので必須ではありません。

文書タブの作成

文書タブについて

ファイル名を入力して[表示]をクリックするとファイルの内容を表示します。
[プロパティのファイルの内容表示]をクリックすると、 プロパティ表示のファイルの内容を表示します。

※ファイルの拡張子がTXT・H・CPPでなければ何もしません。

文書タブ関連定義 (mainwindow.h)

文書タブ作成 (mainwindow.cpp)

[表示]をクリックした時の処理

[プロパティのファイルの内容表示]をクリックした時の処理

テキストファイル読み込み

拡張子がTXT・H・CPPの既存ファイルの場合は、オープンできれば最大1000行読み込みます。
読み込んだデータを戻り値として返します。読めない場合は空データを返します。

画像タブの作成

画像タブについて

ファイル名を入力して[表示]をクリックするとファイルの画像を表示します。
[プロパティの画像ファイル表示]をクリックすると、 プロパティ表示のファイルの画像を表示します。
コンボボックスで画像の伸縮方法を変更できます。

※ファイルの拡張子がPNG・JPG・GIFでなければ何もしません。
※画像がはみ出る場合はスクロールバーが出ます。 この時はタブの土台が広がるので他のタブも影響を受けます。
※コンボを横縦伸縮以外にすると、他のタブの表示が見苦しくなることがあります。
※この画像はWindows7の"C:\Users\Public\Pictures\Sample Pictures"のサンプル画像です。

画像タブ関連定義 (mainwindow.h)

画像タブ作成 (mainwindow.cpp)

※初期値としてpixmapOriginalに標準pixmapをセットしています。

[表示]をクリックした時の処理

[プロパティの画像ファイル表示]をクリックした時の処理

画像ファイル読み込み

既存ファイルで拡張子がPNG・JPG・GIFの場合は、pixmapOriginalにデータを読み込みます。
その他の場合は、pixmapOriginalに標準pixmapをセットします。

伸縮コンボを選択した時の処理

コンボボックスの値によって画像を伸縮して表示します。
項目説明
伸縮なしそのまま表示
横基準縦横比はそのままで横幅に合わせて表示
縦基準縦横比はそのままで縦幅に合わせて表示
横縦伸縮表示枠の縦横サイズに合わせて表示

表示幅(wd)と高さ(ht)はスクロール領域(scrollStack)に収まるサイズにします。
※スクロール領域のサイズが変化しても自動的に再描画されることはありません。
※コンボボックスで選択した時に画像は再描画されます。

暦タブの作成

暦タブについて

カレンダーを表示します。イベント処理はありません。

暦タブ作成

空タブの作成

空タブについて

テスト用の空のタブです。ウィジェットの見栄えなどを確認する時に使います。

空タブ作成

動画タブの作成

動画タブについて

ファイル名を入力して[読み込み]をクリックすると、 ファイルの動画または音声を再生します。
[プロパティの動画/音声再生]をクリックすると、 プロパティ表示のファイルの動画または音声を再生します。
コンボボックスで再生速度を変更できます。

※ファイルの拡張子がwma・mp3・mp2・avi・mpg・wmvでなければ何もしません。
※再生できる動画または音声のタイプは環境によって異なります。
※再生速度の変更は環境によっては機能しないことがあります。
※この動画はWindows7の"C:\Users\Public\Videos\Sample Videos"のサンプル動画です。

モジュールの追加 (proj1.pro)

動画タブ関連定義 (mainwindow.h)

動画タブ作成 (mainwindow.cpp)

[読み込み]をクリックした時の処理

[プロパティの動画/音声再生]をクリックした時の処理

動画/音声再生

ファイルが存在しないか拡張子が対象外の場合は、メッセージを出して終了します。
対象ファイルの場合はプレーヤーにセットして音量と消音を調整してから再生します。
※一時停止した時に画面が消えないようにビデオウィジェットを更新不可にしているので、 ここで更新可能にしています。
※ビデオウィジェットはデフォルトで更新可能になっているので、 通常は更新可能/不可の切り替えは行いません。

コンボで再生速度を選択した時の処理

再生速度を選択されたレートに変更しますが、環境に依存するので機能しないことがあります。
※0.5x:0.5倍速、1.0x:通常速度、2.0x:2倍速

再生スライダーを動かした時の処理

スライダーの位置をプレーヤーに反映させます。

停止ボタンをクリックした時の処理

巻き戻しボタンをクリックした時の処理

巻き戻しの方法が分からないので、取りあえず再生位置を10秒戻しています。

再生/一時停止ボタンをクリックした時の処理

停止または一時停止の時は再生を開始し、再生中の時は一時停止します。
※一時停止したときに画面が消えるのを防ぐため、更新可能/不可を設定しています。
※更新不可の状態では、画面が隠れた後の再描画を自力で行う必要があります。

早送りボタンをクリックした時の処理

早送りの方法が分からないので、取りあえず再生位置を10秒進めています。

音量スライダーを動かした時の処理

スライダーの音量をプレーヤーに反映させます。

消音ボタンをクリックした時の処理

プレーヤーが消音状態の時は消音を解除し、解除されている時は消音状態にします。

プレーヤーの再生時間数が変化した時の処理

新しいメディアファイルをプレーヤーにセットした時に発生するイベントです。
渡されたミリ秒単位の時間数を秒単位に変換して再生スライダーの最大値に設定します。
再生位置を先頭(00:00:00)にして再生時間表示ラベルの内容を書き換えます。

プレーヤーの再生位置が変化した時の処理

渡された再生位置を再生スライダーに反映して、再生時間表示ラベルの内容を書き換えます。

メディアの状態が変化した時の処理

メディアの状態に応じてカーソルの形状を変更したり、 ステータスバーにメッセージを表示します。
■メディアステータス[enum QMediaPlayer::MediaStatus]
定義説明 カーソルメッセージ
UnknownMediaStatus状態不明 通常(消去)
NoMediaなし(停止) 通常(消去)
LoadingMediaデータロード中 BusyLoading...
LoadedMediaデータロード済(停止) 通常(消去)
StalledMediaバッファリング遅延(再生か一時停止) BusyMedia Stalled
BufferingMediaバッファに読み込み中(再生か一時停止) Busy(消去)
BufferedMediaバッファに読み込み済(再生か一時停止) 通常(消去)
EndOfMedia最後まで再生(停止) 通常End of Media
InvalidMedia再生不可(停止) 通常(エラー文字列)

読込バッファの状態が変化した時の処理

ステータスバーに何パーセント読み込んだか表示します。

メディア関連エラーが発生した時の処理

ステータスバーにエラー文字列を表示します。

プレーヤーの再生状態が変化した時の処理

メディアの再生状態に応じて、ボタンの有効/無効の切り替えやアイコンの変更を行います。
■プレーヤーの状態[enum QMediaPlayer::State]
定義説明 停止ボタン再生ボタンのアイコン
PlayingState再生 有効SP_MediaPause
PausedState一時停止(次は停止位置から再生) 有効SP_MediaPlay
StoppedState停止(次は先頭から再生) 無効SP_MediaPlay

プレーヤーの音量が変化した時の処理

音量スライダーに反映します。

プレーヤーの消音が変化した時の処理

消音ボタンのアイコンを変更します。

2016年12月