Gtk.Grid 中的小部件大小
Size of widget in Gtk.Grid
我正在尝试在 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:添加这个问题后,我开始知道网格从其 children 继承了 'expand' 属性。所以我尝试将条目的 halign
和 hexpand
属性设置为 False
,但它仍然产生相同的结果。
我还阅读了有关 Glade 的文章,并决定尝试通过它创建相同的布局。但它仍然产生相同的输出。有没有办法阻止小部件/网格/window 那样扩展?
Edit3:当我最初提出并回答这个问题时,我正在使用 ubuntu gnome 15.10。现在我定期使用 ubuntu 14.04,我注意到一些有趣的事情。我尝试了同样的程序,这次我发现我不需要上面提到的任何一个命令来让它工作。如果有人解释为什么会这样,那将非常有帮助。
解决方案原来是为 window 设置默认大小并将其 hexpand
值设置为 False
。
wind.set_default_size(200,200)
wind.set_hexpand(False)
我正在尝试在 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:添加这个问题后,我开始知道网格从其 children 继承了 'expand' 属性。所以我尝试将条目的 halign
和 hexpand
属性设置为 False
,但它仍然产生相同的结果。
我还阅读了有关 Glade 的文章,并决定尝试通过它创建相同的布局。但它仍然产生相同的输出。有没有办法阻止小部件/网格/window 那样扩展?
Edit3:当我最初提出并回答这个问题时,我正在使用 ubuntu gnome 15.10。现在我定期使用 ubuntu 14.04,我注意到一些有趣的事情。我尝试了同样的程序,这次我发现我不需要上面提到的任何一个命令来让它工作。如果有人解释为什么会这样,那将非常有帮助。
解决方案原来是为 window 设置默认大小并将其 hexpand
值设置为 False
。
wind.set_default_size(200,200)
wind.set_hexpand(False)