Вход/Регистрация
Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода
вернуться

Larsson Thomas

Шрифт:

bpy.utils.register_module(__name__)

# Автоматически отображать позицию мыши при запуске

bpy.ops.wm.mouse_position('INVOKE_DEFAULT')

# Другой тестовый вызов, на этот раз вызывается непосредственно

# execute с предустановленными настройками.

#bpy.ops.wm.mouse_position('EXEC_DEFAULT', x=20, y=66)

Всплывающий диалог

Если этот скрипт запустить, появится всплывающее окно, где вы можете задать некоторые свойства. После того, как вы выйдите из всплывающего окна перемещением мыши наружу, свойства будут выведены одновременно в окно информации и на консоль.

В подразделе "Планировка панели и несколько аргументов" мы использовали одну строку для передачи нескольких аргументов в оператор. Здесь мы используем глобальные переменные для той же цели.

<

#----------------------------------------------------------

# File popup.py

# from API documentation

#----------------------------------------------------------

import bpy

from bpy.props import *

theFloat = 9.8765

theBool = False

theString = "Lorem ..."

theEnum = 'one'

class DialogOperator(bpy.types.Operator):

bl_idname = "object.dialog_operator"

bl_label = "Simple Dialog Operator"

my_float = FloatProperty(name="Some Floating Point",

min=0.0, max=100.0)

my_bool = BoolProperty(name="Toggle Option")

my_string = StringProperty(name="String Value")

my_enum = EnumProperty(name="Enum value",

items = [('one', 'eins', 'un'),

('two', 'zwei', 'deux'),

('three', 'drei', 'trois')])

def execute(self, context):

message = "%.3f, %d, '%s' %s" % (self.my_float,

self.my_bool, self.my_string, self.my_enum)

self.report({'INFO'}, message)

print(message)

return {'FINISHED'}

def invoke(self, context, event):

global theFloat, theBool, theString, theEnum

self.my_float = theFloat

self.my_bool = theBool

self.my_string = theString

self.my_enum = theEnum

return context.window_manager.invoke_props_dialog(self)

bpy.utils.register_class(DialogOperator)

# Вызов диалогового окна при загрузке

bpy.ops.object.dialog_operator('INVOKE_DEFAULT')

#

# Панель в районе tools

#

class DialogPanel(bpy.types.Panel):

bl_label = "Dialog"

bl_space_type = "VIEW_3D"

bl_region_type = "UI"

def draw(self, context):

global theFloat, theBool, theString, theEnum

theFloat = 12.345

theBool = True

theString = "Code snippets"

theEnum = 'two'

self.layout.operator("object.dialog_operator")

#

# Регистрация bpy.utils.register_module(__name__)

  • Читать дальше
  • 1
  • ...
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: