Как развернуть рамку внутри холста в ткинтер? - PullRequest
0 голосов
/ 09 мая 2018

Я создал холст, а затем рамку как потомок холста. Я обнаружил, что я не должен использовать pack(), чтобы поместить рамку в холст. Я использовал

my_canvas.create_window(0,0,window=my_frame, anchor='nw')

Но я бы хотел, чтобы размер моего кадра изменялся с моим приложением. Таким образом, я думаю, мне нужно поставить что-то вроде fill=BOTH, expand=YES для моего кадра.

1 Ответ

0 голосов
/ 09 мая 2018

Вы можете установить высоту и ширину окна холста, чтобы соответствовать ширине и высоте холста. Вы хотите делать это каждый раз, когда холст меняет форму, что можно сделать с помощью привязки к событию <Configure>:

import tkinter as tk

def onCanvasConfigure(e):
    canvas.itemconfig('frame', height=canvas.winfo_height(), width=canvas.winfo_width())

root=tk.Tk()

canvas = tk.Canvas(root, background="blue")
frame = tk.Frame(canvas, background="red")

canvas.pack(expand=True, fill="both")
canvas.create_window((0,0), window=frame, anchor="nw", tags="frame")

canvas.bind("<Configure>", onCanvasConfigure)

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