我需要找出我在用GTK +的版本。 问题是,似乎有这么多不同的版本号参与我不知道哪些是最相关的。
我的系统是Ubuntu的12.04,并配备了libgtk2.0-0作为标准配置,但是当我安装我的Python 3.2的开发环境,我也装了一些其他的包绑定到GTK3。
大多数时候,这一切“只是工作”,但我想要实现的东西,(在devhelp)只适用于GTK的3.2版本。 不用说,我之所以问就是,Python找不到API的方法。
所以,现在我想知道什么(如果有的话),我可以做些什么,但首先我需要找出到底是什么,我有我的系统上了。
这个问题似乎是在正确的方向指向,但四年过时。 没有人有任何更多最新的信息,可以帮助?
编辑:感谢@ptomato和@Pablo他们有用的答案。 我现在的问题是如何使出来的不同的象形文字的意义。 dpkg所输出提供(除其他事项外)以下
bob@bobStudio:~$ dpkg -l libgtk* | grep ^i
ii libgtk-3-0 3.4.2-0ubuntu0.4 GTK+ graphical user interface library
ii libgtk-3-bin 3.4.2-0ubuntu0.4 programs for the GTK+ graphical user interface library
ii libgtk-3-common 3.4.2-0ubuntu0.4 common files for the GTK+ graphical user interface library
ii libgtk-3-dev 3.4.2-0ubuntu0.4 development files for the GTK+ library
ii libgtk-3-doc 3.4.2-0ubuntu0.4 documentation for the GTK+ graphical user interface library
[etc....]
而在Python3壳我得到以下
>>> from gi.repository import Gtk
>>> Gtk.MAJOR_VERSION, Gtk.MINOR_VERSION, Gtk.MICRO_VERSION
(3, 4, 2)
如果我读这正确的(我不知道我),这意味着我使用GTK +版本3.4.2,但因为在库数量,即,一些疑问libgtk-3-0
。 另外,如果我使用3.4.2,为什么一个方法标记为在3.2提供不存在?
有人能解释不同的数字是什么意思?
EDIT2:更具体,我调查的方法是Gtk.Grid().get_child_at()
从DevHelp GTK +说明书,
gtk_grid_get_child_at ()
GtkWidget * gtk_grid_get_child_at (GtkGrid *grid,
gint left,
gint top);
Gets the child of grid whose area covers the grid cell whose upper left corner is at left, top.
grid : a GtkGrid
left : the left edge of the cell
top : the top edge of the cell
Returns : the child at the given position, or NULL
Since 3.2
我试着在我当前的项目使用这种方法,我得到堆栈跟踪以下信息;
neighbour = self.parent.grid.get_child_at(x, y)
AttributeError: 'Grid' object has no attribute 'get_child_at'
但是,如果我使用GTK 3.4.2,方法是可用的“因为3.2”,似乎并没有太大的意义。 也许我犯了一个错误的其他地方?
下面是示出该错误的短的测试程序(见标线<--------)
from gi.repository import Gtk
window = Gtk.Window()
grid = Gtk.Grid()
window.add(grid)
# the callout method
def on_button_clicked(widget):
origin = grid.get_child_at(0, 0) #<-------------
if widget == origin:
print('You clicked (0,0)')
else:
print('You clicked (1,0)')
# add a couple of widgets
button00 = Gtk.Button()
button10 = Gtk.Button()
button00.set_label('(0,0)')
button10.set_label('(1,0)')
grid.attach(button00, 0, 0, 1, 1)
grid.attach(button10, 1, 0, 1, 1)
# attach the callouts
button00.connect("clicked", on_button_clicked)
button10.connect("clicked", on_button_clicked)
# display the window
window.connect("delete-event", Gtk.main_quit)
window.show_all()
Gtk.main()