在代码文件中,我只需链接一个库(来自gi.repository import Gtk )。 但当我运行它时,它回复我:
Gtk-WARNING **:未知属性:GtkTextView.input-purpose
ERROR --file:collega_GUI --riga:160,' Grid'对象没有属性 ' get_child_at'
所以我试图找到丢失的库:
$ dpkg -l libgtk[0-9]* | grep ^i
ii libgtk2.0-0 2.24.10-0ubuntu6 GTK+ graphical user interface library
ii libgtk2.0-bin 2.24.10-0ubuntu6 programs for the GTK+ graphical user interface library
ii libgtk2.0-common 2.24.10-0ubuntu6 common files for the GTK+ graphical user interface library
ii libgtk2.0-dev 2.24.10-0ubuntu6 development files for the GTK+ library
和网格对象需要 gtk3 +,所以让我们安装:
$ sudo apt-get install libgtk-3-0 libgtk-3-common libgtk-3-dev libgtk-3-doc
0 updated, 0 installed, 0 removed and 0 not upgraded
所以图书馆和它们都很好:
"输入目的"问题很奇怪,因为 在之前的操作系统 (ubuntu 13.10,现在我在12.04上) 我没有得到问题
用户界面由Glade 构建,但我之前从未遇到过这样的错误:在相同的项目文件上,但在不同的操作系统版本上。
我仍然认为我需要安装一些库。
EDIT :: ged_child_at函数调用
griglia = self.__builder.get_object('grid3')
for i in range(0, 3):
area = griglia.get_child_at(i, 0)
self.__builder.get_object(Gtk.Buildable.get_name(area)).connect("draw", self.draw)
答案 0 :(得分:0)
The tag Since 3.6
表示Gtk+ 3.4
(如果我没记错的话,这是默认的ubuntu 12.04)。
所以你要么解决它,要么你采取棘手的方式升级到Gtk+ 3.6
- 我 - 在所有方面 - 都强烈反对 - 特别是因为Unity需要将各种补丁合并到Gtk+
中工作。
我刚刚检查了gtk + -3.10.x,python绑定很好并且包含get_child_at(..)
。
This question包含一个答案,实际上这是gtk+ 3.4
的python绑定中的一个错误。
解决方案:Backport修复此问题的git提交(应该是非常小的git commit)重新编译/创建deb包(需要重要知识)。
另一种方法是在本地修复绑定规范并在本地重新创建python内省绑定 - 不确定这是否可行 - 从来没有这样做。