Macro

Macro in Live Widget

you should focus four kinds of macros:

  1. #[derive(Live)]
  2. #[derive(LiveHook)]
  3. #[live]
  4. #[rust]

#[derive(Live)]

这个宏用于为结构体生成实现LiveTrait的代码。LiveTrait是Makepad中用于处理动态数据的一种方式。当你在一个结构体上使用这个宏,它会自动生成一些方法,这些方法可以让你的结构体在运行时动态地改变其值。

这对于需要在运行时改变状态的UI组件来说非常有用

LiveTrait主要关注如何改变数据

#[derive(LiveHook)]

这个宏用于为结构体生成实现LiveHookTrait的代码。LiveHookTrait是Makepad中用于处理动态数据变化的一种方式。当你在一个结构体上使用这个宏,它会自动生成一些方法,这些方法可以让你的结构体在其值发生变化时执行一些操作。

对于需要在数据变化时执行特定操作的UI组件来说非常有用,例如,当一个按钮被点击时,你可能希望执行一些操作。

LiveHookTrait主要关注数据改变时应该执行什么操作

#[live]

这个宏用于标记结构体中的字段,这些字段的值可以在运行时动态地改变。当你在一个字段上使用这个宏,Makepad会自动生成一些代码,这些代码可以让这个字段的值在运行时动态地改变。

#[rust]

这个宏用于标记结构体中的字段,这些字段的值不能在运行时动态地改变。当你在一个字段上使用这个宏,Makepad会自动生成一些代码,这些代码可以确保这个字段的值在运行时不会动态地改变。