Tkinterでボタンをウィンドウ右上に表示したいです。ウィンドウサイズを変えたら、ボタンの位置もそれに応じて動くようにしたいです。
そのため、ウィンドウの幅を取得して使えばいいだろうと思って下のソースを書いたのですが、疑問点が2つあります。
1つは、最初のwinfo_width()
の戻り値が最初は1になってしまい、ボタンをplace
で表示できないことです。
もう1つは、ボタンを動かすにはどうすればいいかわからないことです。このままでは同じ位置に固定してしまうのでbind("<Configure>")
を考えたのですが、それだと何度も配置し直す感じで効率悪いような気もしますし、関数外で宣言したウィジェットを関数内で上手く破棄できないことです。
わかる方、回答よろしくお願いします。
Python
1import tkinter as tk 2 3win = tk.Tk() 4 5def test(): 6 print("x:",end="") 7 print(win.winfo_width()) 8 print("y:",end="") 9 print(win.winfo_height()) 10 11b = tk.Button(win, text="click", command=test) 12b.grid() 13#b.place(x=win.winfo_width()-50, y=0) 14 15#def test2(event): 16# win_x = win.winfo_width() 17# b.place(x=win_x-50, y=0) 18 19#win.bind("<Configure>", test2) 20 21#1が返ってくる・・・? 22print("x:",end="") 23print(win.winfo_width()) 24print("y:",end="") 25print(win.winfo_height()) 26 27win.mainloop()

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。