Maya

【Maya:Python】ボタンを押した回数をカウントする

以前に書いた記事でifを使って処理を分ける方法も試していますが、条件指定が複雑になる処理は面倒なのでクリック回数を取得したいと思っていました。

classを使ってクリック回数を取得

__init__(self)に関してはあまり理解できておらず、とりあえず最初に実行されるという認識で使っています。

# -*- coding: utf-8 -*-
import maya.cmds as cmds

class NumberCount:
    def __init__(self):
        self.i = 0

    def EmptyFrame(self, *arg):
        self.i += 1
        print self.i,

    def show(self, *arg):
        cmds.window("CountWindow", title=u'Number Count', mnb=False, mxb=False)
        cmds.columnLayout(columnWidth=150, columnAttach=("both", 0), rowSpacing=0)
        cmds.button(label=u'Count', c=self.EmptyFrame)
        cmds.showWindow()

def main():
    w = NumberCount()
    w.show()
main()

クリック回数で処理を分岐

整数さえ取得出来てしまえばifを使っていくらでも処理を分けられます。
実用する場合は、処理を分けたい数に合わせてカウントを0に戻す処理も追加で必要になると思います。

if self.i == 1:
    print u"1です"

if self.i == 2:
    print u"2です"

シンプルな方法

global を使う事によって関数の外にある変数を取得することが出来ました。

# -*- coding: utf-8 -*-
import maya.cmds as cmds

i = 0

def EmptyFrame(*arg):
    global i
    i += 1
    print i,

cmds.window(title=u'Number Count', mnb=False, mxb=False)
cmds.columnLayout(cw=150, cat=("both", 0), rs=0)
cmds.button(label=u'Count', c=EmptyFrame)
cmds.showWindow()