PyGObject似乎没有真正的文档。This tutorial是最接近的。我整个上午都在努力寻找Gtk.Window构造函数所接受的参数的描述。我似乎不能在Python语言中做太多的反射,因为PyGObject中的所有东西都是动态生成的。
我只想知道我可以传递给这个构造函数的参数是什么!在GTK+ 3文档中似乎没有该对象的等价物,并且阅读源代码以确定绑定已被证明是一项极其艰巨的任务。有什么想法吗?
发布于 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 Documentation,gtk_window_new()函数在C中接受窗口类型作为参数,这可能是Python中构造函数的位置参数。PyGObject“覆盖”了构造函数,因此type是可选的,并且缺省为顶级窗口。有一堆GtkWindow properties也可以作为关键字参数传递给构造函数。
下面是3个在Python中构建Gtk.Window的示例,它们在功能上是等价的:
# 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交互式控制台是试验小部件和属性的好方法。
发布于 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?
发布于 2013-02-08 05:28:43
稍微扩展一下可接受的答案;GObject Introspection Doctools页面有一个关于如何创建您自己的文档的部分。
在Ubuntu 12.04.2 LTS上,您可以发出以下命令:
$> g-ir-doc-tool --language Python -o ./output_dir /usr/share/gir-1.0/Gtk-3.0.gir
$> yelp ./output_dir/index.pagehttps://stackoverflow.com/questions/11586396
复制相似问题