Tkinter按钮不工作(Python 3.x)

2024-05-23 09:27:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为我的计算机课做最后一个项目。在

我的问题是:
当我单击“新建条目”按钮时,单击“后退”按钮并再次单击“新建条目”按钮,不起作用。在

你们能告诉我为什么吗?在

按钮上的命令似乎只起作用一次。谢谢你的帮助。在

代码:

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()

Tags: textselfnewdefcolumndeletewidth按钮

热门问题