回答受付が終了しました

知恵袋ユーザー

知恵袋ユーザーさん

2022/12/3 10:51

2回答

pythonのtkinterについてです。 canvasのサイズを指定しても、canvasの上にボタンなどを置くとせっかく指定したサイズが勝手に変更されてしまいます。 対処法ありませんか。

プログラミング2,349閲覧

回答(2件)

TkinterのCanvasウィジェットは、ウィジェットを追加すると自動的にサイズを変更するようになっています。そのため、Canvasのサイズを固定したい場合は、ウィジェットを追加する前にCanvasのサイズを指定する必要があります。これには、Canvasウィジェットのconfigureメソッドを使用します。次のようにして、Canvasを500 x 500ピクセルのサイズに指定することができます。 canvas = tk.Canvas(rootwidth=500height=500) canvas.pack() また、Canvas内のアイテムのサイズを変更することもできます。そのためには、create_rectangleやcreate_textなどの形状を作成するメソッドにwidthやheightの引数を渡します。例えば、次のようにすることで、100 x 100ピクセルの正方形を作成することができます。 canvas.create_rectangle(00100100width=1fill='#000') このようにして、Canvasのサイズや、Canvas内のアイテムのサイズを指定することで、Canvasのサイズを固定することができます。

この回答はいかがでしたか? リアクションしてみよう

canvas上にボタンを置く というのは通常create_windowで行うのですが このときcanvasはサイズ変更されません import tkinter as tk root = tk.Tk() canvas = tk.Canvas(width=300height=300bg='gray40') canvas.pack() btn = tk.Button(canvastext='btn') canvas.create_window((150150)window=btn) root.mainloop() どういうコードを書いてるのでしょうか?

知恵袋ユーザー

知恵袋ユーザーさん

質問者2022/12/3 23:32

import tkinter as tk root = tk.Tk() canvas = tk.Canvas(width=300height=300bg='gray40') canvas.pack() btn = tk.Button(canvastext='btn') btn.pack() root.mainloop() みたいに書いてます