[Maya] 2つのWidgetを連携させる [PySide]

新しいことを覚えてる最中は、Blogの更新頻度が上がります(´ω)

今回は、 DialとSpinBox のように2つ以上のWidgetを連携させる方法について。

今回のUIファイルは → こちら

DialTest

見た目はこんな感じになります。

コードはこんな感じ。

Qtの場合、連携させたり、ボタンを押したときにアクションしたり のように
何かをさせたい場合は、【Signal】と【Slot】を使って接続します。

【Event】 ---Signal---> 【Slot】

Eventは ボタンを押す や、あるWidgetの値が変わる 等のアクションのこと。
Eventが発生すると、Slotに対して指定の処理(Signal)が実行されます。

基本的な書き方は、

EventWidgetObject.Signal.connect(SlotWidgetObject.Slot)

pysideHelp

この Signal と Slot は、Helpの SlotsとSignalsを参考に、自分の用途に応じて書きます。

サンプルの場合、Dialの値が変わったら(Signal)SpinBoxに値を入れる(Slot) というSignalとSlotが設定されています。
このSignalとSlotはサイクルなどは起こさないので、双方向に設定可能です。

前回のコンテキストメニューもそうでしたが、PySideの基本的な考え方はこのSignalとSlotのようなので
これだけ押さえておけばたいていの事が出来そうです。
シンプルでわかりやすいです(´ω)

Widgetの使い方やらサンプルないかなーと探していたら

https://qt.gitorious.org/pyside/pyside-examples

公式のサンプル集が数そろっていて良さそうです。
しばらくはコレを参考にしつつ、いろんなUIを作ってみようかなーと思います。
そんな感じで、まだまだPySideネタが続きますよ(´ω`)

コメントを残す

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


*