asaのブログ

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

Qtチュートリアル11(回転)

 この前作ったQtのお絵描きソフトに回転機能を追加しました。

 アンドゥの実装も現在進行中で、最近QUndoStackがあることを知ったのでそれを今後使用する予定です。

 メニューバーに”Effect”を追加しました。Rotateボタンを押すと回転します。

f:id:asa_r:20170724154642p:plain

 

 QActionとスロットの接続

 コードを抜粋していきます。

gistfbe37897238b2bbc0f9d68d2597edba4

 

 Menuへの追加

gist0f19dbcc4b60251e1085969fa04e37a4

 

 スロットの実装

 ダイアログから任意の回転角を取得もしてみましたが、回転によってジャギが入ってしまったので、今は固定です。

gist46ba259ff94b8448c86292018ca7f945

 

 関数の実装

gist1803a6d65ae40253f98d1499f5a1448d

 QMatrixを使用して回転しています。ちなみに後で調べたところ、回転などの変形はQtranformクラスが推奨されているので、今後切り替えます。

 参考:QTransform Class | Qt 4.8