我在试着把一个标签放在一个框的中心有点困难。我正在使用网格几何管理器,我尝试了各种方法,比如使用“粘滞”和重新安排我的框架工作方式。下面是它现在的截图:
我在试着让“偶数”文本在框架中居中。以下是我当前的代码:
the_frame = Frame(the_window, width= 400, height = 150,
relief = 'groove', borderwidth = 2)
the_frame.grid_propagate(False)
the_text = Label(the_frame, text = 'Even')
alpha_check = Checkbutton(the_window, text = 'Alpha', variable = boxtick0,
command = oddoreven)
beta_check = Checkbutton(the_window, text = 'Beta', variable = boxtick1,
command = oddoreven)
gamma_check = Checkbutton(the_window, text = 'Gamma', variable = boxtick2,
command = oddoreven)
margin = 5
the_frame.grid(padx = margin, pady = margin,
row = 1, column = 1, columnspan = 3)
the_text.grid(padx = margin, pady = margin, row = 2,
column = 2, sticky=W+E+N+S)
alpha_check.grid(padx = 5, pady = 5, row = 2, column = 1)
beta_check.grid(padx = 5, pady = 5, row = 2, column = 2)
gamma_check.grid(padx = 5, pady = 5, row = 2, column = 3)
您没有为行和列分配任何权重。这会导致行和列的大小刚好能容纳它们的内容。如果GUI中有额外的空间,它将不被分配。在您的例子中,包含标签的列的宽度将刚好适合标签,而右侧的所有空间都将被闲置。在
您可以为列0和行0赋予一个正权重,以指示
grid
为该行和列提供额外的空间,如下所示:另外,您将标签放在第一行,第一列,但是行和列的编号从零开始。这是无害的,因为不包含任何内容的行和列不会占用任何空间(除非您赋予它们权重)。在
找到答案了!使用.place方法是因为“文本”是父对象“框架”的子对象。我是这样做的:
相关问题 更多 >
编程相关推荐