GObject Gtk、Gnome、Gtk+、Gl、Gtk2、Gtk3...我不明白?

2023-11-21

我需要一些窗口来托管 webkit 或/和 cairo drwaing,但我必须首先处理所有这些问题才能了解我在做什么。

现在。我迷失了,不再明白这一切是怎么回事。

当我尝试使用绑定或尝试找出某些东西的依赖关系时,事情会变得更糟。 例如:在 python 中,pyGtk 已弃用并被 pyGObject 取代(有时称为 pyGl!!)

有很多网站,很多下载和版本,混合了过时的和新的参考资料,但没有一个整体的架构视图.

我不明白的是……所有这些东西是如何在太多的站点、包和版本中相互混合的?


短篇故事:

如果您正在为 GTK 2 编程,请使用 pyGTK。

如果您正在为 GTK 3 编程,请使用 pyGObject。

长话短说:

据我了解,pyGTK是基于pyGObject的。 GObject 是 GTK 的“对象”API。 GTK是用C语言开发的,C语言不是面向对象的语言。 GObject 是一个提供高级面向对象功能的库。所有 GTK 对象都继承自该库提供的 GObject 类。

然后是 GObject 内省工作。它的目标是使绑定维护更容易,并使用源代码注释自动生成每种语言(python、C++ 等)的大部分绑定代码。这导致了 pyGI 中的 python 端,即基于 GObject 内省工作的 python 绑定。那时人们被告知将它用于 GTK3 开发。

从那时起,曾经由 pyGI 提供的 GObject-introspection 工作就被集成到了 GObject 中。 pyGObject 最终成为开发者在 GTK3 中进行 python 开发时应该使用的工具。

请阅读:

  • https://wiki.gnome.org/Projects/PyGObject

关于 GNOME/GTK 关系:

GTK 是 GNOME 项目使用的工具包。它是从 GIMP 中提取出来的,因此得名(GTK 代表:GIMP Tool Kit)。 GTK 是 GNOME 项目的核心部分,GTK 开发人员也经常参与 GNOME 项目。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GObject Gtk、Gnome、Gtk+、Gl、Gtk2、Gtk3...我不明白? 的相关文章

随机推荐

  • 使用 pgx 在 GO 中的 Postgres 中批量插入

    我正在尝试在 go 中的 db 中批量插入键 这是代码关键结构 type tempKey struct keyVal string lastKey int 测试键 data tempKey keyVal abc lastKey 10 key
  • 将集合转换为数组的最简单方法?

    假设我们有一个Collection
  • 使用 xpath 在 Java 中解析带有命名空间的 XML

    我正在尝试用 java 解析 SOAP 请求 但代码没有返回任何节点 这是代码任何人都可以发现错误 String xml
  • 字符串操作与正则表达式

    我们经常被告知正则表达式很慢 应该尽可能避免 然而 考虑到自己进行一些字符串操作的开销 不是谈论算法错误 这是另一回事 特别是在PHP or Perl maybe Java 是什么limit 在什么情况下我们可以考虑字符串操作是更好的选择
  • ASP.Net MVC 5 子目录捆绑问题

    我在 ASP Net MVC 5 项目中看到捆绑的奇怪行为 当我明确声明 BundleConfig cs 文件中的所有文件时 我的项目工作得很好 如下所示 bundles Add new ScriptBundle bundles app I
  • 将单元格添加到 iOS 中 UITableView 的底部

    我正在使用带有情节提要的 xcode 4 2 来创建 iphone 应用程序 当我按下右上角的编辑按钮时 我希望有选项来删除现有行并在顶部看到额外的单元格 带有绿色 图标 这将允许我添加新单元格 我有一个正在填充的数组viewDidLoad
  • ThreadPoolExecutor 队列满时会阻塞?

    我正在尝试使用 ThreadPoolExecutor 执行大量任务 下面是一个假设的例子 def workQueue new ArrayBlockingQueue
  • 将 struct 转换为 int

    考虑到 让我添加一个代码片段来澄清 typedef struct uint8 t field 5 uint8 t field2 4 and so on some struct t some struct t some struct init
  • UITextField:textRectForBounds:与。编辑矩形边界:

    和有什么区别UITextField其文本的矩形与可编辑文本的矩形 我只想移动文本字段内显示文本的位置 我应该用相同的确切实现来重写这两种方法吗 UITextField 类参考 文本矩形边界 返回文本字段文本的绘图矩形 编辑矩形边界 返回可以
  • 多点连接:接受邀请(使用内置浏览器 VC)

    我试图关注 WWDC 演讲了解多点连接框架 经过多次错误启动后 浏览器会显示对等方 并发出邀请 但是当我在对等设备上按 接受 时 浏览器一直显示 正在连接 没有结束 我以为MCBrowserViewController处理了逻辑 我可以放松
  • lambda 表达式和事件处理程序?

    有人向我提到 c 支持使用 lambda 表达式作为事件处理程序 有人可以与我分享一些这方面的参考吗 最好有代码片段 您可以使用 lambda 表达式构建匿名方法 该方法可以附加到事件 例如 如果您制作一个带有Button and a La
  • 如何自定义谷歌课堂共享按钮的外观和感觉

    目前 它看起来像一个旁边没有文字的正方形 我们希望在不干扰图标的情况下自定义外观和感觉 当然以匹配我们的其他按钮 已经尝试将样式添加到div已转换为共享图标 但到目前为止尚未成功 div class btn btn blue Google
  • 在 data.frame 中的两列之间添加(插入)一列

    我有一个包含 a b 和 c 列的数据框 我想在 b 和 c 之间添加一个新列 d 我知道我可以通过使用在末尾添加 dcbind但我怎样才能insert它在两列之间吗 我建议你使用该功能add column 来自tibble包裹 libra
  • 取消嵌套或取消切割包含不同长度列表的数据帧

    我有一个数据框 其中有几列 其中包含我想要的列表列unnest or unchop 但是 它们的长度不同 所以产生的错误是Error No common size for 这是一个表示 显示什么有效 什么无效 library tidyr l
  • Ninject 入门

    我在 上观看了 Ninject 的前 2 个初学者教程Dimecasts net 现在 我想在 ASP NET MVC 3 中使用 Ninject 2 2 我想要一个带有模拟模型的视图 调用我的服务时 我得到的对象引用未设置为对象的实例 p
  • 这个 OpenCL 代码可以优化吗?

    我正在为一个专门的矩阵函数编写一段 OpencL 代码 Dx1 vector v two DxD矩阵A and B和一个常数c 返回1xD vector r where r i c sum over j v j A i j B i j 下面
  • 使用 django-cms,如何允许用户指定背景图像

    我正在为客户创建一个 django cms 网站 我想做这样的事情 期望的效果是让 CMS 用户可以为页面选择背景图像 理想情况下 他们会使用类似的东西选择现有的图片Filer 有没有办法做到这一点 Paulo 是对的 第一步是配置一个占位
  • 将 UTF-8 BOM 添加到字符串/Blob

    我需要在客户端生成的文本数据中添加 UTF 8 字节顺序标记 我怎么做 Using new Blob xEF xBB xBF content yields my data 当然 也没有 uBBEF x22BF 工作 与 x22 成为下一个角
  • Javascript call() 和 apply() 与 bind()?

    我已经知道了apply and call是类似的函数 设置this 函数的上下文 区别在于我们发送参数的方式 手动与数组 问题 但是我什么时候应该使用bind 方法 var obj x 81 getX function return thi
  • GObject Gtk、Gnome、Gtk+、Gl、Gtk2、Gtk3...我不明白?

    我需要一些窗口来托管 webkit 或 和 cairo drwaing 但我必须首先处理所有这些问题才能了解我在做什么 现在 我迷失了 不再明白这一切是怎么回事 当我尝试使用绑定或尝试找出某些东西的依赖关系时 事情会变得更糟 例如 在 py