asaのブログ

プログラミングの勉強まとめ

Qtチュートリアル14(レイヤー機能の追加)

 作成中のお絵描きソフトにレイヤー機能(テスト)を追加しました。

 

 レイヤーを適当に作成して、レイヤー変更メニューを押すと任意のレイヤーを編集可能になります。

f:id:asa_r:20170730231029p:plain

f:id:asa_r:20170730231039p:plain

f:id:asa_r:20170730231051p:plain

 

 スロット

 レイヤー用のメニューを作成したらスロットを実装します。スロットは描画領域の関数をそれぞれ呼び出しています。レイヤーの設定はダイアログからインデックスを取得して任意に変更が可能です。ダイアログの最小値が1になっていますが、これは背景に市松模様のイメージを追加したかったので悪しからず。

gist388ef15fd6b18d600cc270c3cae15622

 

 レイヤー用関数の実装

 編集中のイメージをレイヤー用のリストに追加します。新しいレイヤーを作成してそれを表示します。

 レイヤーの変更はリストからイメージを取得して表示させています。

 レイヤーを合成して最終的なイメージを取得するmergeImageは現在実装中です。

gist7071dafab5b598cbd2adfb37b8719301

 

 ただあるレイヤーを選択した状態でレイヤーを追加すると、レイヤーが重複して追加されるので随時改良していきます。意外に難しい…。