Как расширить поле Python Tkinter Text на все свободное пространство?
Делаю себе на Tkinter'е GUIшку.
Почти все ОК, но вылезает, что у поля Text почему то снизу остается широкий зазор.
Вроде как то что в интернете нашел я поприменял, нижняя строка с кнопками теперь цепляется к нижнему краю окна, и поле Text расширяется... Но почему то остается зазор. Я подозреваю, что этот зазор остается от высоты нижнего блока с кнопками, но это не точно.
Что и как можно поправить, чтобы блок Text растянулся на все свободное пространство?
Код моего GUI:
if __name__ == '__main__':
root = Tk()
root.tk.call('source', 'azure-dark.tcl')
ttk.Style().theme_use('azure-dark')
# Configure lines
Grid.rowconfigure(root, 0, weight=0)
Grid.rowconfigure(root, 1, weight=0)
Grid.rowconfigure(root, 2, weight=0)
Grid.rowconfigure(root, 3, weight=1)
Grid.rowconfigure(root, 4, weight=1)
# Configure columns
Grid.columnconfigure(root, 0, weight=1)
Grid.columnconfigure(root, 1, weight=1)
Grid.columnconfigure(root, 2, weight=1)
folder_path = StringVar()
folder_path.set("Select Folder")
active_folder_path = StringVar()
active_folder_path.set("No active folder now")
what_to_do = StringVar()
what_to_do.set("Empty Cant Start")
should_stop = BooleanVar()
should_stop.set(False)
folder_dialog = ttk.Button(textvariable=folder_path, command=browse_button)
folder_dialog.grid(row=0, column=0, columnspan=3, sticky=E + W + N, pady=10, padx=10)
active_folder_way = ttk.Label(textvariable=active_folder_path, anchor="center")
active_folder_way.grid(row=1, column=0, columnspan=3, sticky=E + W + N)
start_action = ttk.Button(textvariable=what_to_do, state=DISABLED, command=convert)
start_action.grid(row=2, column=0, columnspan=3, sticky=E + W + N, pady=10, padx=10)
frame = ttk.Frame(root)
frame.grid(row=3, column=0, columnspan=3, sticky=N+S+W+E, pady=10, padx=10)
text_log = Text(frame, wrap="none", font=("arial", 10, "bold")) # , height=36
vsb = ttk.Scrollbar(frame, command=text_log.yview, orient="vertical")
hsb = ttk.Scrollbar(frame, command=text_log.xview, orient="horizontal")
text_log.configure(yscrollcommand=vsb.set, xscrollcommand=hsb.set)
frame.grid_rowconfigure(0, weight=1)
frame.grid_columnconfigure(0, weight=1)
vsb.grid(row=0, column=1, sticky=N+S)
hsb.grid(row=1, column=0, sticky=E+W)
text_log.grid(row=0, column=0, sticky=N+S+W+E)
text_log.grid_columnconfigure(0, weight=1)
text_log.grid_rowconfigure(0, weight=1)
folder_creator = ttk.Button(text="Create Folders", state=DISABLED, command=create_folders)
folder_creator.grid(row=4, column=0, sticky=E + W + S, pady=10, padx=10)
files_renamer = ttk.Button(text="Rename Files", state=DISABLED, command=rename_files)
files_renamer.grid(row=4, column=2, sticky=E + W + S, pady=10, padx=10)
root.geometry('655x800+1257+100')
root.title("GUI WebM->MP4 Convertor")
root.protocol("WM_DELETE_WINDOW", on_closing)
root.mainloop()
И скриншот того как это выглядит:
Ответы (1 шт):
Вы переусердствовали с "весами". И сделали так, что вес ряда с полем Text стал равен весу с рядом кнопок. Вот кнопки и пытаются "усилить" свою позицию. Все веса уберите и оставьте указание веса только для ряда с полем Text.
Grid.rowconfigure(root, 3, weight=1)
Вообще, веса редко когда нужно трогать. Вот как раз только, если у вас что-то типа редактора, тогда именно для его ячейки (для ряда и столбца) указываются веса побольше. В вашем случае для столбца указывать нельзя, т.к. там ещё и левая кнопка обитает. Но в данном случае это не важно, т.к. по бокам от ячейки с редактором ничего нет.
