PyGTK属性与python属性

2024-10-03 13:25:26 发布

您现在位置:Python中文网/ 问答频道 /正文

当从PyGTK中的GObject类派生时,可以像在C中一样定义GObject属性,使用__gproperties__dict和do_get_property/do_set_property方法,如Sub-classing GObject in Python中所述。请注意,这是在我们使用Python中的@property装饰器之前编写的。在

GObject properties的优点是可以连接到对象的notify::property-name信号,以便在属性发生更改时接收通知。除此之外,是否有任何理由使用GObject属性来代替Python的@property装饰器?在


Tags: 方法inget属性定义装饰propertydo
2条回答

为什么不使用它们呢?提供的simplified version Python绑定,定义GObject属性与 定义Python属性。在

尽管如此,除了 通知。我以前用过的就是财产 开始gtk建造者文件夹。例如,在UI文件中

<object class="GtkImage" id="image">
  <property name="stock">gtk-missing-image</property>
</object>

在由构造时设置Image对象的stock属性 如果在中使用GObject属性 你的自定义小部件,你也可以利用这个优势。甚至会有这种行为 随着property binding support in Glade的出现更加有用。在

另一个潜在优势是GObject properties的最小/最大限制和 整数和浮点的默认值,这有时对 UI相关属性。在

Other than that, is there any good reason to use GObject properties instead of Python's @property decorator?

不是真的。它们有很多样板,所以除非我需要notify信号,否则我用Python编写我需要的任何东西。在

话虽如此,我还是会想“我不需要这个物业的通知”,然后意识到“实际上,我根本不需要这个物业。”

相关问题 更多 >