PythonのTkinterで、ウィンドウの大きさに合わせてcanvasのサイズチェンジする
ウィジェットを配置するとき、.pack() もしくは.place()をいじることで実現できます。
gird() はそもそもの挙動がよくわかっていないので省略です。
とりあえず、こんな感じのことがやりたい。
canvas以外のウィジェット(ボタンとかラベルとか)にも有効… だと思います(未検証)
なお、Python3 で書かれています。
.pack() の場合
expand=True と、 fill=tkinter.BOTH を指定します。なお、fill=tkinter.Xとすると、横方向のみ可変、fill=tkinter.Y とすると、縦方向のみ可変となります。
import tkinter window = tkinter.Tk() canvas = tkinter.Canvas(bg="#03948a") # color canvas.pack(expand=True, fill=tkinter.BOTH) window.mainloop()
.place() の場合
relwidth = 1.0と、relheight=1.0 を指定します。これは縦横の相対的な大きさを指定しているものです。片方だけ指定すれば片方のみ可変になり、1.0以下の数値であれば好きな割合で指定することができます。
import tkinter window = tkinter.Tk() canvas = tkinter.Canvas(bg="#03948a") # color canvas.place(x=0, y=0, relwidth=1.0, relheight=1.0) window.mainloop()