2014-12-04 8 views
0

저는 제 컴퓨팅 I 클래스의 최종 프로젝트를 진행하고 있습니다. 나는 데Tkinter 버튼이 작동하지 않습니다 (Python 3.x)

문제는 : 나는 새 항목 버튼을 클릭하면
은 다시 버튼을 누르면 다시 한 번이 작동하지 않습니다 새 항목 버튼을 클릭합니다.

왜 그런지 말해 줄 수 있습니까?

버튼의 명령이 한 번만 작동하는 것처럼 보입니다. 당신의 도움을 주셔서 감사합니다.

코드 : 당신의 entry 기능에

from tkinter import * 
import tkinter.filedialog 

class App(Tk): 
def __init__(self): 
    Tk.__init__(self) 
    self.title("Entry Sheet") 
    self.font = ("Helvetica","13") 
    self.header_font = ("Helvetica","18") 
    self.exercise_font = ("Helvetica","13","bold") 
    self.delete = 'a' 
    self.new_user() 



def new_user(self): 
    if self.delete == 'b': 
     self.delete = 'c' 
     self.hide() 

    self.delete = 'b' 

    self.new_entry = Button(self, text = 'New Entry', command = self.entry, width = 15) 
    self.new_entry.grid(row = 1, column = 0, columnspan = 3, padx = 10, pady = 5) 

    self.look_entry = Button(self, text = 'See Entries', command = self.see_entries, width = 15) 
    self.look_entry.grid(row = 2, column =0, columnspan = 3, padx = 10, pady = 5) 

def entry(self): 
    print(1) 
    self.delete = 'b' 
    self.hide() 

    self.entry = Label(self, text = 'New Entry', font = self.header_font) 
    self.entry.grid(row = 0, column = 0, columnspan = 2) 

    self.numberlbl = Label(self, text = 'Please choose a muscle?', font = self.font) 
    self.numberlbl.grid(row = 1, column= 0, columnspan = 2, sticky = 'w') 

    self.muscle_chosen = IntVar() 
    self.chest = Radiobutton(self, text = "chest", variable = self.muscle_chosen, value = 1, font = self.font) 
    self.bicep = Radiobutton(self, text = "bicep", variable = self.muscle_chosen, value = 2, font = self.font) 
    self.chest.grid(row = 2, column = 0) 
    self.bicep.grid(row = 2, column = 1) 

    self.exerciseslbl = Label(self, text = 'Please enter the number of exercises: ', font = self.font) 
    self.exerciseslbl.grid(row = 3, column = 0, columnspan = 3) 

    self.exercises_spinbox = Spinbox(self, from_= 1, to_= 50, width = 5, font = self.font) 
    self.exercises_spinbox.grid(row = 4, column = 0) 

    self.back_button = Button(self, text = 'Back', command = self.new_user, width = 10) 
    self.back_button.grid(row =5, column=0, pady =10) 

def see_entries(self): 
    print("Goes through") 


def hide(self): 
    if self.delete == 'b': 
     self.new_entry.grid_remove() 
     self.look_entry.grid_remove() 
    elif self.delete == 'c': 
     self.entry.grid_remove() 
     self.numberlbl.grid_remove() 
     self.chest.grid_remove() 
     self.bicep.grid_remove() 
     self.exerciseslbl.grid_remove() 
     self.exercises_spinbox.grid_remove() 
     self.back_button.grid_remove() 


def main(): 
    app = App() 
    app.mainloop() 

if __name__=="__main__": 
    main() 
+0

'작동하지 않는다 '- * 어떻게 * 작동하지 않습니까? 오류가 발생합니까? 전혀 아무 일도 일어나지 않는가? – LittleBobbyTables

+0

버튼 self.new_entry는 한 번만 작동하는 것으로 보이며 self.entry()로 이동합니다. 그러나 self.entry()에서 돌아가 self.new_entry를 클릭하려고하면 자기에게 걸리지 않습니다. .entry() – cahuizar

답변

1

당신이 self.entry을 덮어 쓰기하는 Label에 대한 참조, 함수의 이름입니다. 그런 다음 단추가 self.entry을 호출하면 작동하지 않습니다.
Label 다른 이름으로 전화하면됩니다.

+0

고맙습니다. fhdrsdg, 문제가 해결되었습니다. – cahuizar

관련 문제