#python #tkinter
#питон #tkinter
Вопрос:
я хочу открыть menu_frame, нажав кнопку login_button, но кадр не отображается, и сообщений об ошибках не появляется. это мой первый раз, и я так растерялся, что попытался поискать в Google, как исправить эту проблему, но из того, что я прочитал, мне кажется, что нет никаких ошибок или каких-либо причин для того, чтобы этот код не функционировал должным образом. пожалуйста, помогите 🙁
from tkinter import * window = Tk() window.title("EL TALLO") window.geometry("700x490") window.config(background="#FFF8E5") #회원가입 def register_frame(): register_frame = Frame( window, bd=2, bg='#FFF8E5', relief=SOLID, padx=10, pady=10 ) Label( register_frame, text="ID입력", bg='#CCCCCC', ).grid(row=0, column=0, sticky=W, pady=10) Label( register_frame, text="비밀번호 입력", bg='#CCCCCC', ).grid(row=5, column=0, sticky=W, pady=10) newlyset_id = Entry( register_frame ) newlyset_pw = Entry( register_frame, show='*' ) register_btn = Button( register_frame, width=15, text='회원가입', relief=SOLID, cursor='hand2', command=register_frame.destroy ) newlyset_id.grid(row=0, column=1, pady=10, padx=20) newlyset_pw.grid(row=5, column=1, pady=10, padx=20) register_btn.grid(row=7, column=1, pady=10, padx=20) register_frame.pack() register_frame.place(x=220, y=150) def new_id(): #new_id에 newlyset_id에 입력한 값을 저장 new_id = newlyset_id.get() def new_pw(): #new_pw에 newlyset_pw에 입력한 값을 저장 new_pw = newlyset_pw.get() #메뉴화면 def menu_frame(): menu_frame = Frame( window, bd=2, bg='#FFF8E5', relief=SOLID, padx=10, pady=10 ) label1 = Label(menu_frame, text = "EL TALLO", bg="lightgreen",width=10, height=1, font=(15)) label1.pack() btn1 = Button(menu_frame, text = "play game", bg="gray", width=15, height=1) btn1.pack() btn2 = Button(menu_frame, text = "How to play", bg="gray", width=15, height=1) btn2.pack() btn3 = Button(menu_frame, text = "Settings", bg="gray", width=15, height=1) btn3.pack() def btncmd(): print("게임이 종료되었습니다") btn4 = Button(menu_frame, text = "END GAME", command=btncmd, bg="lightgreen", width=15, height=1) btn4.pack() label1.place(x=50, y=50) btn1.place(x=50, y=100) btn2.place(x=50, y=150) btn3.place(x=50, y=200) btn4.place(x=50, y=250) #로그인 Label( window, text="아이디 입력", bg='#CCCCCC', ).place(x=230, y=170) id_tf = Entry( window, ).place(x=330, y=170) def id(): #id에 id_tf에 입력한 값을 저장 id = id_tf.get() Label( window, text="비밀번호 입력", bg='#CCCCCC', ).place(x=230, y=220) pw_tf = Entry( window, ).place(x=330, y=220) def pw(): #pw에 pw_tf에 입력한 값을 저장 pw = pw_tf.get() #회원가입 버튼 registerbutton = Button( window, width=15, text="회원가입", bg="#CCCCCC", cursor='hand2', command=register_frame ) registerbutton.place(x=360, y=270) #로그인 버튼 loginbutton = Button( window, width=15, text="로그인", bg="#CCCCCC", cursor='hand2', command=menu_frame ) loginbutton.place(x=230, y=270) window.mainloop()
Ответ №1:
Вы не упаковали menu_frame, и отступ в def btncmd() был неправильным.
То есть:
btn3 = Button(menu_frame, text = "Settings", bg="gray", width=15, height=1) btn3.pack() menu_frame.pack() def btncmd(): print("게임이 종료되었습니다")