私はこのコードをpython 2.7で書いています。私はこのコードで "pack_propagate"を使っています。初めて "pack_propagate"は正常に動作しますが、ボタン1をクリックすると "pack_propagate"が機能しません。誰でも私に理由を教えてもらえますか?pythonのtkinterのパックマネージャー
from tkinter import *
root = Tk()
root.title("pack_forget check")
tk_window_width = 500
tk_window_height = 300
screen_width = root.winfo_screenwidth() # width of the screen
screen_height = root.winfo_screenheight() # height of the screen
x = (screen_width/2) - (tk_window_width/2)
y = (screen_height/2) - (tk_window_height/2)
root.geometry('%dx%d+%d+%d' %(tk_window_width, tk_window_height, x, y))
frame1 = Frame(root, bg="red", height=250, width=250)
frame2 = Frame(root, bg="green", height=250, width=250)
def first():
frame1.pack(side=TOP, padx=20, pady=20)
frame1.pack_propagate(0)
frame2.pack_forget()
def second():
frame2.pack(side=TOP, padx=20, pady=20)
frame2.pack_propagate(0)
frame1.pack_forget()
label1 = Label(frame1, text="Frame 1")
label1.pack(side="top")
button1 = Button(frame1, text="button 1", command=second, width=10)
button1.pack(side="bottom")
label2 = Label(frame2, text="Frame 2")
label2.pack(side="top")
button2 = Button(frame2, text="button 2", command=first, width=10)
button2.pack(side="bottom")
frame1.pack(side=TOP, padx=20, pady=20)
frame1.pack_propagate(0)
root.mainloop()
@AnupamYadav「正しく動作していない」とはどういう意味ですか?何が起こると予想され、代わりに何が起こっていますか? – Goyo
"pack_propagate"はフレームを縮小しません。最初の時間フレーム1は、pack_propagateのために縮小されませんでしたが、 "button1"をクリックした後、2番目のフレームが表示されても、2番目のフレームにも "pack_propagate"を使用していますが、 "pack_propagate" –
@AnupamYadav ok、現在、「ボタン1」を押すと緑色のフレームが表示されません。緑色のフレームが表示されますか? – officialaimm