Как создать диалоговое окно в Cinema4D
import c4d
from c4d import gui
# Идентификаторы для элементов управления
COLOR_ID = 1000
APPLY_BUTTON_ID = 1001
class ColorChangerDialog(gui.GeDialog):
def CreateLayout(self):
# Устанавливаем заголовок окна диалога
self.SetTitle("Color Changer")
# Добавляем цветовой выбор
self.AddColorField(COLOR_ID, c4d.BFH_SCALEFIT, initw=150, inith=0)
# Добавляем кнопку для применения цвета
self.AddButton(APPLY_BUTTON_ID, c4d.BFH_CENTER, name="Apply Color")
return True
def Command(self, id, msg):
# Обработка событий от элементов управления
if id == APPLY_BUTTON_ID:
# Получаем выбранный цвет из цветового поля
color = self.GetColorField(COLOR_ID)
# Получаем активный объект в документе
active_object = doc.GetActiveObject()
# Если объект выбран, устанавливаем его цвет
if active_object:
active_object[c4d.ID_BASEOBJECT_USECOLOR] = c4d.ID_BASEOBJECT_USECOLOR_ALWAYS
active_object[c4d.ID_BASEOBJECT_COLOR] = color['color']
active_object.Message(c4d.MSG_UPDATE)
c4d.EventAdd()
else:
gui.MessageDialog("No object selected.")
# Закрываем окно
self.Close()
return True
# Главная функция
def main():
# Создаем экземпляр диалога
dlg = ColorChangerDialog()
# Открываем диалог модально
dlg.Open(dlgtype=c4d.DLG_TYPE_MODAL, defaultw=300, defaulth=50)
if __name__ == "__main__":
main()Last updated