テキストフィールドを追加するときはpropを使用する。
import bpy
class myCInputs(bpy.types.PropertyGroup): # テキストボックスを定義 myTextField: bpy.props.StringProperty( name="タイトル", description="説明文", default="", maxlen=1024, # 最大文字数 subtype="NONE" ) # subtype: # ['FILE_PATH', 'DIR_PATH', # 'FILE_NAME', 'BYTE_STRING', # 'PASSWORD', 'NONE']
class myCTool_PT_panel(bpy.types.Panel): bl_label = "パネルタイトル" bl_category = "タブタイトル" bl_space_type = "VIEW_3D" bl_region_type = "UI" def draw(self, context): layout = self.layout #横に並べるならrow.propを使う # row = layout.row() layout.prop(context.scene.myinputs, "myTextField")
classes = ( myCInputs, myCTool_PT_panel ) def register(): for cls in classes: bpy.utils.register_class(cls) # bpy.types.Scene.myinputs変数を作成し、テキストボックスを代入 bpy.types.Scene.myinputs = bpy.props.PointerProperty(type=myCInputs) def unregister(): for cls in classes: bpy.utils.unregister_class(cls) del bpy.types.Scene.myinputs if __name__ == "__main__": register()