2

grid()を使用してウィンドウの下部にウィジェットを配置するにはどうすればよいですか? たとえば、このコードはこれらのラベルを互いの真下に配置しますが、label_4 をウィンドウの下部または下部に近づけたい場合はどうすればよいでしょうか?

label_1 = Label(text = 'Name 1').grid(row = 0, sticky = W)
label_2 = Label(text = 'Name 2').grid(row = 1, sticky = W)
label_3 = Label(text = 'Name 3').grid(row = 2, sticky = W)
label_4 = Label(text = 'Name 4').grid(row = 3, sticky = W)
4

1 に答える 1

2

これにグリッド システムを使用する場合は、グリッド システムに「スペーサー」セル (空のセル) を作成する必要があります。これにより、ウィンドウから残されたスペースが動的に取得され、最後のラベルが下に押し出されます。

from Tkinter import *  # or tkinter if you use Python3

root = Tk()

label_1 = Label(master=root, text='Name 1')
label_2 = Label(master=root, text='Name 2')
label_3 = Label(master=root, text='Name 3')
label_4 = Label(master=root, text='Name 4')

label_1.grid(row=0)
label_2.grid(row=1)
label_3.grid(row=2)  # this is the 2nd
label_4.grid(row=4)  # this is the 4th

root.rowconfigure(index=3, weight=1)  # add weight to the 3rd!
root.mainloop()

packただし、この単純なシナリオでは、代わりにgrid次を使用する必要があると思います。

from Tkinter import *  # or tkinter if you use Python3

root = Tk()

label_1 = Label(master=root, text='Name 1')
label_2 = Label(master=root, text='Name 2')
label_3 = Label(master=root, text='Name 3')
label_4 = Label(master=root, text='Name 4')

label_1.pack()
label_2.pack()
label_3.pack()
label_4.pack(side=BOTTOM)

root.mainloop()
于 2013-07-05T17:40:59.467 に答える