首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyGObject GTK+ 3-文档?

PyGObject GTK+ 3-文档?
EN

Stack Overflow用户
提问于 2012-07-21 04:16:59
回答 5查看 6.7K关注 0票数 24

PyGObject似乎没有真正的文档。This tutorial是最接近的。我整个上午都在努力寻找Gtk.Window构造函数所接受的参数的描述。我似乎不能在Python语言中做太多的反射,因为PyGObject中的所有东西都是动态生成的。

我只想知道我可以传递给这个构造函数的参数是什么!在GTK+ 3文档中似乎没有该对象的等价物,并且阅读源代码以确定绑定已被证明是一项极其艰巨的任务。有什么想法吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-07-21 13:37:27

我同意这是PyGObject目前状态下的一个巨大缺陷。对于我们这些已经使用了一段时间的GTK+的人来说,这不是问题,但对于新用户来说,这可能会让他们感到困惑。

人们正在开发一个系统,可以自动为C语言以外的其他语言生成文档,这就是众所周知的GObject Introspection Doctools。由于这还没有完全准备好,您最好使用C API documentation并学习如何将其转换为Python。这并不像听起来那么难。

请记住,Python调用是动态包装到底层C库的。您所需要做的就是了解一些通常如何转换为Python语言的内容,并了解GTK+“属性”是如何工作的。这基本上是C语言中的命名约定,并且模式很容易学习。PyGObject/Introspection Porting页面是一个很好的开始。

Python语言中的构造函数通常被包装到C中的*_new()函数中。PyGObject还允许您将属于该小部件的任何GTK+属性作为关键字参数传入构造函数。因此,在Python中构建小部件时有很多选择。

你提到过GtkWindow。如果您查看GtkWindow Documentationgtk_window_new()函数在C中接受窗口类型作为参数,这可能是Python中构造函数的位置参数。PyGObject“覆盖”了构造函数,因此type是可选的,并且缺省为顶级窗口。有一堆GtkWindow properties也可以作为关键字参数传递给构造函数。

下面是3个在Python中构建Gtk.Window的示例,它们在功能上是等价的:

代码语言:javascript
复制
# this is very close to how it's done in C using get_*/set_* accessors.
window = Gtk.Window(Gtk.WindowType.TOPLEVEL)
window.set_title("Hello")

# setting properties as keyword arguments to the constructor
window = Gtk.Window(type=Gtk.WindowType.TOPLEVEL, title="Hello")

# set_properties() can be used to set properties after construction
window = Gtk.Window()
window.set_properties(title="Hello")

Python交互式控制台是试验小部件和属性的好方法。

票数 22
EN

Stack Overflow用户

发布于 2014-04-04 00:11:07

文档位于以下位置:https://lazka.github.io/pgi-docs/Gtk-3.0/index.html

这里的Gtk.Window参数(就是您所要求的):https://lazka.github.io/pgi-docs/Gtk-3.0/classes/Window.html

上面有一些交互式控制台解决方案,但我更喜欢自动完成的方案:How do I add tab completion to the Python shell?

票数 15
EN

Stack Overflow用户

发布于 2013-02-08 05:28:43

稍微扩展一下可接受的答案;GObject Introspection Doctools页面有一个关于如何创建您自己的文档的部分。

在Ubuntu 12.04.2 LTS上,您可以发出以下命令:

代码语言:javascript
复制
$> g-ir-doc-tool --language Python -o ./output_dir /usr/share/gir-1.0/Gtk-3.0.gir
$> yelp ./output_dir/index.page
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11586396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档