Tkinter - заполнить фрейм текстовым виджетом, используя place () - PullRequest
0 голосов
/ 03 мая 2020

Я пытаюсь заполнить фрейм текстовым виджетом и полосой прокрутки.

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

Проблема в том, что я использую place (), в то время как большинство уроков и ответов касаются grid ().

Это мой код:

 # --- frame 5 - SERIAL PRINTOUT ---

    frame5 = tk.Frame(root, bg='#80c1ff', bd=5)
    frame5.place(relx = 0, rely = 0.4, relwidth = 1, relheight = 0.4)
    scrollbar = tk.Scrollbar(frame5)
    scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
    scrollbar.config(command=log.yview)
    log = tk.Text ( frame5, width=30, height=30, takefocus=0)
    log.pack()
    # attach text box to scrollbar
    log.config(yscrollcommand=scrollbar.set)

    # --- frame 5 - SERIAL PRINTOUT ---

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

1 Ответ

1 голос
/ 06 мая 2020

Если вы хотите, чтобы виджет Text заполнил доступное пространство внутри его родительского фрейма, вам нужно сообщить менеджеру макета пакета через fill и expand опции pack():

log.pack(fill='both', expand=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...