Tkinter Grid Manager - PullRequest
       6

Tkinter Grid Manager

0 голосов
/ 04 декабря 2018

Я нахожусь в процессе изучения Tkinter и, создавая общие окна, фреймы и все виджеты, чтобы почувствовать интерфейс, я столкнулся с проблемой, которую не могу понять, почему он ведет себя как есть.

Я создал корневое окно с 3 кадрами, и у каждого кадра есть кнопка.Цель этого упражнения состояла в том, чтобы убедиться, что рамки и корневое окно растягиваются должным образом.

Окно и рамки растягиваются, но я заметил, что кнопка в первом кадре остается в центре, а остальные кнопки в кадре2 и 3 нет.

Я просто пытаюсь понять, почему это происходит.

Вот код:

import tkinter as tk

MW = tk.Tk()
MW.title("TK Main Window")
MW.config(bg='#8FBC8F',padx=5,pady=5,relief=tk.RIDGE,bd=3)

FRM1 = tk.Frame(MW,bd=3,relief=tk.RIDGE,bg='#1E90FF',padx=10,pady=10)
FRM1.grid(row=0,column=0,sticky=tk.E + tk.W + tk.N + tk.S,padx=5,pady=5)
FRM1.rowconfigure(0,weight=1)
FRM1.columnconfigure(0,weight=1)
bt1 = tk.Button(FRM1, text="FRM1 button") 
#bt1.grid(row=0,column=0,sticky=tk.W)
bt1.grid()


FRM2 = tk.Frame(MW,bd=3,relief=tk.RIDGE,bg='#B0C4DE',padx=10,pady=10)
FRM2.grid(row=1,column=0,sticky=tk.E + tk.W + tk.N + tk.S,padx=5,pady=5)
FRM2.rowconfigure(1,weight=1)
FRM2.columnconfigure(0,weight=1)
bt2 = tk.Button(FRM2, text="FRM2 button") 
bt2.grid()


FRM3 = tk.Frame(MW,bd=3,relief=tk.RIDGE,bg='#FFE4B5',padx=10,pady=10)
FRM3.grid(row=2,column=0,sticky=tk.E + tk.W + tk.N + tk.S,padx=5,pady=5)
FRM3.rowconfigure(2,weight=1)
FRM3.columnconfigure(0,weight=1)
bt3 = tk.Button(FRM3, text="FRM3 button") 
bt3.grid()

MW.rowconfigure(0,weight=1)
MW.rowconfigure(1,weight=1)
MW.rowconfigure(2,weight=1)
MW.columnconfigure(0,weight=1)

MW.mainloop()

Вот как это выглядит:

root window with 3 frames

1 Ответ

0 голосов
/ 04 декабря 2018

Когда вы пишете FRM2.rowconfigure(1,weight=1), вы уже редактируете второй кадр (FRM2), поэтому вам необходимо настроить единственную строку этого кадра: FRM2.rowconfigure(0,weight=1).То же самое касается последнего кадра: FRM3.rowconfigure(0,weight=1).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...