Как урезать полосу прокрутки в Tkinter?

В приложении 3 области для печати пользователем текста. Они заключены во фреймы, где 4 объекта: 1) ярлык, 2) текстовое поле, 3) полоса прокрутки, 4) 2 кнопки под текстовым полем.

В первой из трех областей удалось сделать правильно: там полоса прокрутки (выполнена через вложенный фрейм) не заходит на заголовок. Однако попытки повторить положительный опыт не дают того же эффекта: хотя сам движок располагается ровно по высоте поля текста, в то же время белая область над ним "вторгается" в поле ярлыка.

Как исправить? Привожу проблемный код

import tkinter as tk

window = tk.Tk()

# создадим рамку, где будет поле для вопросов пользователя
frame_question_answer = tk.Frame(
    master=window, 
    relief=tk.RIDGE, 
    borderwidth=5
)
# добавим фрейм для полосы прокрутки
frame_question_answer_with_scroll = tk.Frame(                                   
    master=frame_question_answer
)
# создадим виджет ярлыка, предваряющего задаваемый вопрос
lbl_ask_question = tk.Label(
    master=frame_question_answer,
    text='Задай мне свой вопрос',
    foreground='black',  # устанавливает белый текст
    background='MediumPurple1',  # устанавливает фон оттенка сиреневого
    width=32, # устанавливает ширину ярлыка
    height=3   # устанавливает высоту ярлыка
)
# добавим виджет Text - данная область предназначена для написания вопросов
text_box_question = tk.Text(
    master=frame_question_answer_with_scroll,                                                     
    width=67, 
    height=5, 
    bg='#EBF1F2',
    fg='black'
)
# создадим элемент кнопки Спросить 
button_ask = tk.Button(
    master=frame_question_answer,
    text='Спросить',
    width=15,
    height=2,
    bg='#B533FF',
    fg='yellow',
    activebackground='#C4B1C3'
)
# создадим элемент кнопки Очистить 
button_clear = tk.Button(
    master=frame_question_answer,
    text='Очистить',
    width=15,
    height=2,
    bg='#B533FF',
    fg='yellow',
    activebackground='#C4B1C3'
)
# разместим виджеты в сетке
frame_question_answer.grid(
    row=0, column=0,
    columnspan=1,
    sticky='e'                        
) 
frame_question_answer_with_scroll.grid(                                               
    row=1, column=0, 
    columnspan=2, 
    sticky='news'   
)
lbl_ask_question.grid(
    row=0, column=0, 
    columnspan=2,                                                    
    sticky='news'
)
text_box_question.grid(                                                                         
    row=0, column=0, #  columnspan=2,                          
    sticky='news'
)
button_ask.grid(
    row=3, column=0, sticky='ew'
)
button_clear.grid(
    row=3, column=1, sticky='ew'
)

# создаем виджет скролинга текстовой области
# лента прокрутки для текстового поля вопросов
scrollbar_question = tk.Scrollbar(frame_question_answer,
                                 orient='vertical', 
                                  command=text_box_question.yview   
                                 )
scrollbar_question.grid(row=1, column=3, sticky='ns')                   
text_box_question.configure(yscrollcommand=scrollbar_question.set)

В красном квадрате - лишний кусок полосы прокрутки


Ответы (1 шт):

Автор решения: GrAnd

Что-то я вообще не вижу scrollbar'а в вашем примере кода...

Но если его туда добавить вот так:

scrollbar_question = tk.Scrollbar(master=frame_question_answer_with_scroll,                                 
                                  orient='vertical', 
                                  command=text_box_question.yview  
                                 )
scrollbar_question.grid(                                                                         
    row=0, column=1,
    sticky='ns'
)
text_box_question.configure(yscrollcommand=scrollbar_question.set)

То он вполне себе встаёт на своё законное место. -

→ Ссылка