Читаем Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода полностью

    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__)

Диалоговое окно ошибки

Насколько я знаю, Блендер не имеет элегантных средств уведомления пользователя, что что-то пошло не так. Можно напечатать сообщение в окне терминала или в информационной панели, а затем вызвать исключение. Большинство современных приложений вместо этого открывают окно сообщения и выводят сообщение об ошибке. Следующий скрипт использует API Блендера для создания всплывающего окна диалога для уведомления пользователя.

Скрипт сканирует файл. Если найдено слово return (возврат), скрипт открывает всплывающее окно, чтобы сообщить пользователю, что произошла ошибка и на какой строке. Если во всём файле такого слова нет, всплывающее окно отображает число отсканированных строк.

На момент написания, этот скрипт был причиной утечек памяти, что делало работу Блендера неустойчивой. Эта ошибка, мы надеемся, будет исправлена в ближайшее время.

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

# File error.py

# Simple error dialog

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

import bpy

from bpy.props import *  

#

# Оператор сообщения об ошибке. При вызове, всплывает

# диалоговое окно с переданным сообщением.

#

class MessageOperator(bpy.types.Operator):

    bl_idname = "error.message"

    bl_label = "Message"

    type = StringProperty()

    message = StringProperty()  

    def execute(self, context):

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

        print(self.message)

        return {'FINISHED'}  

    def invoke(self, context, event):

        wm = context.window_manager

        return wm.invoke_popup(self, width=400, height=200)  

    def draw(self, context):

        self.layout.label("A message has arrived")

        row = self.layout.split(0.25)

        row.prop(self, "type")

        row.prop(self, "message")

        row = self.layout.split(0.80)

        row.label("") row.operator("error.ok")  

#

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных