空き時間に、三角形の行数がユーザー入力に依存するパスカル三角形を自動的に生成するプログラムに取り組んでいます。
私が抱えている問題は、入力が増加すると、出力が最終的にウィンドウの側面から「漏れる」ことです。これを修正するために、私はこれを書きました:
def resize_window():
newWidth = app.outPut.winfo_width()
if (newWidth > 275):
root.geometry(str(newWidth) + "x400+" + screenMid)
if (newWidth < 275):
root.geometry("275x400+" + screenMid)
これにより、出力の幅に応じてウィンドウの幅が変更されます。問題は、newWidth の値が常に 1 つ後ろの値になることです。たとえば、ラベルの幅が 10 ピクセルで、14 になる何かを入力した場合でも 10 になりますが、12 になる何かを行うと 14 になります。
tkinter でラベルのピクセル幅を取得するより良い方法はありますか?
編集:
コードに次の変更を加えた質問に対する回答を見つけました。
def resize_window():
root.update_idletasks()
newWidth = app.outPut.winfo_width()
if (newWidth > 275):
root.geometry(str(newWidth) + "x400+" + screenMid)
if (newWidth < 275):
root.geometry("275x400+" + screenMid)