2014-12-04 2 views
0

Я работаю над своим окончательным проектом для своих компьютеров класса I.Кнопка Tkinter не работает (Python 3.x)

Проблема, которую я имею:
Когда я нажимаю на новую кнопку ввода, нажмите кнопку назад и нажать на новую кнопку входа в очередной раз не работает.

Если вы, ребята, можете мне сказать, почему это так?

Команда на кнопке, кажется, работает только один раз. Спасибо за вашу помощь.

Код:

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

В вашей entry функции перезаписи self.entry, который является именем функции, со ссылкой на Label. Когда кнопка затем вызывает self.entry, это не функция.
Просто позвоните Label что-нибудь еще.

+0

Большое спасибо fhdrsdg, что устранило проблему – cahuizar

Смежные вопросы