Gtk.Grid中小部件的大小

时间:2016-01-12 08:28:55

标签: python gtk python-3.4

我正在尝试在9x9 Gtk.Grid中安排多个Gtk.Entry。我已使用width_chars=1设置条目的大小(是的,我希望它们很小)。问题是网格不尊重条目的大小并扩展它。我尝试使用Gtk.Box而不是Grid(我无法在9x9中安排它),它确实渲染了1个宽度的条目。程序在python3中。这是我的代码,我做错了什么?

from gi.repository import Gtk
wind=Gtk.Window(title='My App')
wind.connect('delete-event',Gtk.main_quit)
grid=Gtk.Grid()
wind.add(grid)
s=[[0 for x in range(9)] for x in range(9)]
for i,j in [(x,y) for x in range(9) for y in range(9)]:
     s[i][j]=Gtk.Entry(width_chars=1,xalign=0.5,text='0')
     grid.attach(s[i][j],j,i,1,1)
wind.show_all()
Gtk.main()

这输出:Program output

Edit2:在添加这个问题之后,我开始知道网格从其子节点继承了'expand'属性。所以我尝试将条目的halignhexpand属性设置为False,但它仍会产生相同的结果。
我还阅读了Glade,并决定尝试通过它创建相同的布局。但它仍然产生相同的输出。有没有办法阻止小部件/网格/窗口像这样扩展?

Edit3:当我最初询问并回答这个问题时,我在ubuntu gnome 15.10上。现在我在常规的ubuntu 14.04上,我发现了一些有趣的东西。我尝试了同样的程序,这次我发现我不需要上面提到的任何一个命令来使它工作。如果有人解释了为什么会这样,那将是非常有帮助的。

1 个答案:

答案 0 :(得分:1)

该解决方案最终设置了窗口的默认大小,并将其hexpand值设置为False

wind.set_default_size(200,200)
wind.set_hexpand(False)