답변

0

블렌더는 대화 상자 같은 것을 제공하지 않습니다.

외부 모듈의 This previous question에 대한 답변이 도움이 될 수 있습니다.

+0

클래스 DialogOperator (bpy.types.Operator) : bl_idname = "object.dialog_operator" bl_label = "! 당신은 QUIT 전에 저장" 데프 실행 (자체, 컨텍스트) : self.report ({ 'INFO'}, 메시지) 인쇄 (메시지) 반환 { 'FINISHED'} 데프 호출 "당신은 아직 저장하지 않았다"= 메시지 (자체, 컨텍스트, 이벤트) 복귀 context.window_manager.invoke_props_dialog (자기) 클래스 DialogPanel (bpy.types.Panel) bl_label = "대화" bl_space_type = "VIEW_3D" bl_region_type = "UI" DEF draw (self, context) : self.layout.operator ("object.dialog_operator") –

+0

이것은이 다이아 그램을 위해 생성 한 코드입니다. 로그 창하지만 지금은 그 시도에 예 아니 취소 옵션을 삽입하려고 해요 .... 아직까지 유용한 답변을 찾지 못했습니다 ... 가능한 경우 위의 코드에 버튼을 삽입하는 방법을 말해 ... 감사합니다 Logged –

0

클래스 DialogOperator (bpy.types.Operator)

bl_idname = "object.dialog_operator" 
bl_label = "Save Before You QUIT!" 

def execute(self, context): 
    message = " You didn't saved yet " 
    self.report({'INFO'}, message) 
    print(message) 
    return {'FINISHED'} 
def invoke(self, context, event): 
    return context.window_manager.invoke_props_dialog(self) 

클래스 DialogPanel (bpy.types.Panel)

bl_label = "Dialog" 
bl_space_type = "VIEW_3D" 
bl_region_type = "UI" 

def draw(self, context): 
    self.layout.operator("object.dialog_operator") 

그러나 이것은 단지 다이얼로그 윈도우를 작성하기위한 것입니다. 이후에이 코드에 단추를 삽입해야합니다. 누구든지이 사실을 알고 있으면 답변을 게시하려고합니다. 동시에 나는 이것을 해결하려고 노력하고있다.

+0

블렌더에서 'bpy.types.Operator'는 동작을 수행하는 클래스입니다. 즉,이 객체를 삭제할 때 연산자가 객체를 삭제하는 작업을 수행합니다. 'bpy.types.Panel'은 윈도우 또는 속성 윈도우의 측면 창에서 접을 수있는 섹션입니다. DialogOperator가 대화창과 같은 대화 상자를 표시하는 동안 그것은 연산자에 의해 사용 된 값을 변경하는 방법을 의미합니다. ok 버튼이 자동으로 추가되고 대화 상자에서 멀어지면 대화 상자가 취소됩니다.이 대화 상자는 일반적으로 F6 키를 누르거나 아래쪽에 표시됩니다 도구 팔레트의 – sambler

+0

bl_label 아래에 추가 된 클래스 속성은 대화 상자 내에서 조정할 수 있으며 사용할 연산자로 반환됩니다. 커스텀 드로잉은 DialogOperator 클래스에서'def draw (self, context) :'를 통해 이루어집니다. 버튼은 일반적으로 연산자'row.operator ("render.render")'를 추가하여 패널에 표시되며, 연산자 대화 상자에서 작동하지는 않습니다. – sambler

+0

고마워 .... def draw (자기, 컨텍스트) : row.operator ("render.render") 나는 시도했다 ... 이것은 나중에 작동하지 않는다 ... –

0

zenity 명령을 사용하는 것이 빠르고 간단합니다 (모든 Python 배포판에 기본적으로 포함되어야 함). 이 간단한 예제 스크립트를 사용해보십시오. 우분투 14.04에서 제 블렌더 2.69에서 작동합니다.

import bpy # bpy or bge does not matter 
import subprocess as SP 
# call an OS subprocess $ zenity --entry --text "some text" 
# (this will ask OS to open a window with the dialog) 
res=SP.Popen(['zenity','--entry','--text', 
'please write some text'], stdout=SP.PIPE) 
# get the user input string back 
usertext=str(res.communicate()[0][:-1]) 
# adjust user input string 
text=usertext[2:-1] 
print("I got this text from the user: %s"%text) 

더 복잡 대화 상자의 zenity의 --help를 참조