Двойной обратный вызов с кнопкой выбора - PullRequest
0 голосов
/ 16 июня 2020

Когда я переключаюсь между двумя вариантами, он всегда возвращает двойной результат (tex, tex / sculpt, sculpt). Это происходило и в моих прошлых проектах, но я так и не смог решить эту проблему. Перезапустить Maya не удалось, даже с переписанным кодом это продолжалось. Есть предложения?

import maya.cmds as cmds

class UI(object):
    def __init__(self):

        a=cmds.window()
        cmds.showWindow(a)
        cmds.columnLayout()
        self.displaceOptions = cmds.radioButtonGrp(la2=['Texture', 'Sculpting'], nrb=2, en=True, cc=self.check)

    def check(self, *args):

        option = cmds.radioButtonGrp(self.displaceOptions, q=True, sl=True)

        if option == 1:
            self.dispTexture()
        elif option == 2:
            self.dispSculpt()

    def dispTexture(*args):
        print('tex')

    def dispSculpt(*args):
        print('sculpt')

UI()

1 Ответ

1 голос
/ 16 июня 2020

Причина в том, что changeCommand реагирует на изменение состояния, которое изменяется дважды: сначала деактивируется одна радиокнопка, затем активируется другая. Самый первый вызов UI () не имеет переключателя, если вы выберете его, обратный вызов вызывается только один раз, потому что состояние изменяется только один раз. Вы можете использовать onCommand или offCommand, которые должны вести себя немного лучше, чем вы ожидаете.

...