RadioButton переключатель для обновления метки флажка - PullRequest
0 голосов
/ 14 июля 2020

Хотите установить переключатель при изменении состояния кнопки для обновления текстовой метки. Вот код bolow. Большое спасибо.

import maya.cmds  as cmds
import pymel.core as pm

class Ui():
    def __init__(self):
        windowID = 'testWin'
        uiName   = "Test Win"

        if pm.window(windowID, exists=1):
            pm.deleteUI(windowID)

        tmpl = pm.uiTemplate(windowID+'_uiTmpl', force=1)

        
        wnd = pm.window(windowID, t=uiName, s=1, rtf=1, toolbox=1)

        with tmpl:
            with pm.horizontalLayout() as skinLayout1:                    
                pm.radioCollection("tmp")
                pm.radioButton("tmpX", l="X", da=0, onc=self.switchCmd())
                pm.radioButton("tmpY", l="Y", da=1, onc=self.switchCmd(), sl=1)
                pm.radioButton("tmpZ", l="Z", da=2, onc=self.switchCmd())
                pm.checkBox("checkBox", l="X", v=1)
                
        wnd.show()
    
    
    def switchCmd(self, *arg):
        if pm.radioButton("tmpX", q=1, sl=1) == 1:
            dir = "Z"
        elif pm.radioButton("tmpY", q=1, sl=1)== 1:
            dir = "X"
        elif pm.radioButton("tmpZ", q=1, sl=1) == 1:
            dir = "Y"
        
        pm.checkBox("checkBox", e=1, l=dir)
        
        return

Ui()

Теперь я попытался написать код и получил ошибки. «RuntimeError: объект 'tmpX' не найден.»

1 Ответ

2 голосов
/ 14 июля 2020

Ваша команда on определена неправильно, если вы используете self.switchCmd (), метод будет выполняться напрямую, вам придется использовать onc = self.switchCmd без круглых скобок.

...