Open kimkyuseok opened 7 months ago
제가 제공한 예제에서 control
플래그를 사용하고 있습니다. 그러나 Maya의 cmds.cmdScrollFieldExecuter
명령어에는 실제로 control
플래그가 없습니다.
cmds.cmdScrollFieldExecuter
명령어는 특정 UI 요소를 생성하고 컨트롤하는 명령어가 아니라, cmdScrollFieldExecuter 위젯을 생성하거나 설정하는 데 사용됩니다.
이 문제를 해결하려면 다른 방법을 사용해야 합니다. 예를 들어, PySide2를 사용하여 위젯을 직접 생성하고 Maya의 Python API를 사용하여 필요한 동작을 수행할 수 있습니다.
다음은 PySide2를 사용하여 Maya의 Python API로 cmdScrollFieldExecuter 위젯을 생성하는 예제입니다:
import maya.cmds as cmds
from PySide2 import QtWidgets, QtCore
class MayaCmdScrollFieldWindow(QtWidgets.QWidget):
def __init__(self):
super(MayaCmdScrollFieldWindow, self).__init__()
# 윈도우 설정
self.setWindowTitle("Maya CmdScrollFieldExecuter")
self.setMinimumWidth(400)
self.setMinimumHeight(300)
# 레이아웃 생성
layout = QtWidgets.QVBoxLayout(self)
# cmdScrollFieldExecuter 생성
self.cmd_scroll_field = QtWidgets.QTextEdit()
self.cmd_scroll_field.setReadOnly(True)
# 레이아웃에 추가
layout.addWidget(self.cmd_scroll_field)
# cmdScrollFieldExecuter에 명령 실행 기능 추가
self.cmd_scroll_field.textChanged.connect(self.execute_command)
def execute_command(self):
# cmdScrollFieldExecuter에 입력된 명령을 실행하는 함수
command = self.cmd_scroll_field.toPlainText()
if command.strip(): # 빈 명령이 아닌 경우에만 실행
result = cmds.evalDeferred(command)
self.cmd_scroll_field.append("\n" + result)
# 위젯 실행
def run_maya_cmd_scroll_field_window():
global maya_cmd_scroll_field_window
try:
maya_cmd_scroll_field_window.close() # Close the existing window, if it exists
except:
pass
maya_cmd_scroll_field_window = MayaCmdScrollFieldWindow()
maya_cmd_scroll_field_window.show()
run_maya_cmd_scroll_field_window()
이 코드는 PySide2를 사용하여 QTextEdit 위젯을 생성하고, 사용자가 입력한 명령을 실행할 수 있도록 합니다. 위젯에 입력된 명령은 Maya의 cmds.evalDeferred
함수를 사용하여 실행됩니다.
PySide2를 사용하여 Maya의 cmdScrollFieldExecuter 화면을 표시하는 예제를 제공할 수 있습니다. 아래는 그러한 예제 코드입니다:
이 코드는 PySide2와 함께 Maya의 cmdScrollFieldExecuter 위젯을 사용하여 GUI 창을 만듭니다. 이 코드를 실행하면 May UI 창이 표시되고, cmdScrollFieldExecuter를 포함하는 창이 표시됩니다.