- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚开始学习GTK。我正在浏览gtk+3.0.0的源代码,我发现_get_type()
的实现一些 gtk 对象类型的方法,但有些没有此方法的实现,例如 GtkRange
。这有什么原因吗?据我从 GObject 引用手册中了解到,_get_type()
方法在类型系统中注册对象类型。
最佳答案
注册为 GType 的所有类型都需要 get_type()
函数。 GObject(库)提供了方便的宏来生成正确的 get_type()
函数实现,同时考虑到线程安全初始化或动态类型注册等问题。
用于 GObject(类型)子类的宏是 G_DEFINE_TYPE()
,但在 GTK+ 中,您还会发现 G_DEFINE_TYPE_WITH_CODE()
,通常在类型时使用还实现接口(interface); G_DEFINE_ABSTRACT_TYPE()
和 G_DEFINE_ABSTRACT_TYPE_WITH_CODE()
,用于抽象类型;最近,G_DEFINE_TYPE_WITH_PRIVATE()
和 G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE()
使用私有(private)数据定义 GObject 子类,避免了对内部 g_type_class_add_private()
的调用类初始化函数。
装箱类型(普通旧结构的 GType 包装器)也有 G_DEFINE_BOXED_TYPE()
,接口(interface)类型有 G_DEFINE_INTERFACE()
。
GObject 的 API 引用中提供了更多信息:
关于gtk _get_type()函数实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20559103/
我刚刚开始学习GTK。我正在浏览gtk+3.0.0的源代码,我发现_get_type()的实现一些 gtk 对象类型的方法,但有些没有此方法的实现,例如 GtkRange 。这有什么原因吗?据我从 G
正如标题所说,我收到一个编译错误,我似乎无法修复: error: redefinition of 'tinygecko_notebook_get_type' note: previous defini
我是一名优秀的程序员,十分优秀!