[PySide] GraphicsViewで遊ぼう その1 基本

四角以外のボタンがあるUIを作ろうとした場合、どうするのかなと行き着いた先が
GraphicsViewだったので、よく分からないのと難しそうという先入観を取り払うべく
基本部分から勉強初めて見ました。

作り方は

PyQtでイメージビューワ

を参考にさせていただきました。

まず基礎編。

GraphicsViewを使用する場合は、
GraphicsView GraphicsScenes Item の3つを使用します。
ScenesがModelと同様の挙動をしていて、形(Item)をScenesに配置していくことで
いろいろな形のオブジェクトを表示することができます。

表示するには、

1 Scenesを作成
2 Scenesに配置したいItemを addItemで追加

します。
上のサンプルの場合は、直線を作成してScenesに配置しています。
これだけだと、ただ配置しただけなのでDragDropしたりなにかしらアクションをつけることはできません。

cap_view

表示したい形状または画像をQGraphicsItemを継承したクラスで定義してやり
のクラスに対してマウスのPushやMoveのイベントを作成してあげます。
今回はSimpleItemという名前で、小さい四角にしてみました。
形状は paint 関数内にpainterを使用して描画しています。

SimpleItemで定義した小さい四角のようなものをマウスでドラッグ&ドロップで
ぐりぐり動かすことが出来ます。

いまはSimpleItemを1つだけ置いてますが、

こんな感じで数を増やせば、その数分ドラッグで動かせるオブジェクトを置くことが出来ます。
GraphicsViewを使用した場合、配置するオブジェクトの位置情報などはItem側が保持することになります。
移動は transform を使用することによって簡単に移動できるのがGoodですね。

描画周りを調べ始めると急に難易度が上がるというか資料が皆無になってくるのが厳しいですが
なんとなく分かってきたので引き続き調べて色々やってみようと思います。

次回は、2つのオブジェクトを線でつなぐのをテストしてみようと思います
ズサーc⌒っ゚Д゚)っ

コメントを残す

メールアドレスが公開されることはありません。


*