요약
이 문서에서는 Python을 사용하여 Nuke 메뉴 시스템의 명령을 활성화하는 방법을 설명합니다.
더 많은 정보
Nuke 의 그래픽 사용자 인터페이스(GUI)는 사용자 정의가 매우 가능하며, 이를 통해 메뉴 시스템에서 다양한 항목을 추가, 이동 또는 활성화할 수 있어 사용자는 Nuke 에 완벽하게 통합하여 사용자 정의 파이프라인을 설정할 수 있습니다.
Nuke 의 메뉴 시스템은 Menus와 MenuItems라는 두 가지 주요 클래스로 구성되어 있으며, 각 클래스의 정의는 아래에서 확인할 수 있습니다.
- 메뉴 클래스: 다른 메뉴 또는 메뉴 항목을 위한 컨테이너
- MenuItem 클래스: Nuke 에서 작업을 수행하는 QAction을 위한 컨테이너
Menu 및 MenuItem 클래스는 Nuke 내에서 메뉴 구조를 만드는 데 사용됩니다. 또한, 이 클래스를 사용하여 사용자 정의 메뉴를 허용하는 자체 메뉴 구조를 만들 수도 있습니다. 두 클래스에 대한 자세한 내용은 여기에서 확인할 수 있습니다.
QAction은 QT/PySide 클래스이며, 명령을 수행하는 데 사용할 수 있는 추상 액션입니다. QAction에 대한 자세한 내용은 다음 QT 설명서에서 확인할 수 있습니다.
https://doc.qt.io/qt-6/qaction.html
GUI의 Nuke 메뉴에서 명령을 실행하면 실제로 MenuItem 컨테이너에 연결된 QAction을 호출하도록 지시하는 것입니다. 예를 들어, 편집 메뉴에서 QAction 복제를 선택하면 해당 QAction에 할당된 명령이 노드에 복제됩니다.
방법
Python을 통해 Nuke 의 메뉴 구조에서 명령을 활성화하려면 특정 MenuItem 컨테이너를 "찾아" 관련 QAction을 호출해야 합니다. 아래 코드를 사용하면 됩니다.
mainMenu = nuke .menu("Nuke")
mainMenu.findItem("Edit/Clone").invoke()
첫 번째 코드 줄인 mainMenu = nuke .menu("Nuke") 는 Nuke 메인 메뉴 도구 모음의 Menu 클래스를 반환합니다.
참고: 대신 노드 도구 모음에 액세스하려는 경우 "Nuke"를 "Nodes"로 바꿔서 동일한 명령을 사용하면 됩니다.
두 번째 줄인 mainMenu.findItem("Edit/Clone").invoke() 는 findItem() 함수를 사용하여 "Edit" 메뉴 안에 있는 "Clone" MenuItem 컨테이너를 찾습니다. 그런 다음 invoke() 함수를 통해 해당 MenuItem의 QAction이 활성화됩니다. 이 경우 선택된 노드가 복제됩니다.
참고: 메뉴 시스템에서 특정 QAction을 찾는 경로를 생성하려면 하위 메뉴에 들어갈 때마다 "/"를 구분 기호로 사용해야 합니다. 예: 편집/복제, 뷰어/보기/다음 등
nuke .menu() 와 함께 사용할 수 있는 현재 유효한 메뉴는 다음과 같습니다.
'Nuke' : 애플리케이션 메뉴
'Pane' : UI Panes & Panels 메뉴
'노드' : 노드 도구 모음(및 Nodegraph 오른쪽 마우스 메뉴)
'속성' : 속성 패널 오른쪽 마우스 메뉴
'애니메이션 ' : 애니메이션 메뉴 및 곡선 편집기 오른쪽 마우스 메뉴
'뷰어' : 뷰어 오른쪽 마우스 메뉴
'노드 그래프' : 노드 그래프 오른쪽 마우스 메뉴
'축' : 모든 클래식 3D Axis_Knobs의 메뉴에 나타나는 기능입니다.
'SceneGraph' : Scene Graph 패널 오른쪽 마우스 메뉴
'스냅' : 베타 3D 노드의 스냅 메뉴에 사용자 지정 옵션을 추가합니다. 자세한 내용은 다음에서 확인할 수 있습니다: 새로운 스냅 메뉴 확장
우리는 문제로 불편을 끼쳐 드려 죄송합니다
이유를 알려주세요