AttributeError:“NoneType”对象没有属性“grid\u remove”

2024-09-27 00:13:35 发布

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

我只做了一点工作与Tkinter和我喜欢使用它,但与任何类型的编程一样,它需要时间来学习。我正在尝试创建一个简单的待办事项列表,最终将保存在一个文件中。但是我不能让第17行的按钮被移除,下一行的按钮被替换到另一个位置。在

from tkinter import *
import time 

root = Tk()
root.geometry("300x300")
root.title("Programs")
global TDrow
TDrow = 2

def tdTaskAdd():
    global TDrow
    global tdEnter
    TDrow = int(TDrow+1)
    s = tdEntry.get()
    label = Label(ToDoFrame,text=s).grid(row=TDrow,column=1)
    tdEntry.grid(row=TDrow+1,column=1)
    tdEnter.grid_remove()
    tdEnter = Button(ToDoFrame,text="AddTask",command=tdTaskAdd).grid(row=TDrow+2,column=1)

ToDoFrame = Frame()
ToDoFrame.place(x=0,y=10)

tdTitle = Label(ToDoFrame,text="To Do List:").grid(row=TDrow-1,column=1)
tdEntry= Entry(ToDoFrame)
tdEntry.grid(row=TDrow+1,column=1)
tdEntry.insert(0, "Enter a new task")
global tdEnter
tdEnter = Button(ToDoFrame,text="Add Task",command=tdTaskAdd).grid(row=TDrow+2,column=1)
mainloop()

运行此命令时,我一直收到一个错误:

^{pr2}$

Tags: textimportcolumnbuttonroot按钮globallabel
1条回答
网友
1楼 · 发布于 2024-09-27 00:13:35

问题是这条线:

tdEnter = Button(ToDoFrame,text="Add Task",command=tdTaskAdd).grid(row=TDrow+2,column=1)

这样,tdEnter不是Button,而是grid的返回值,即None。在

试试这个:

^{pr2}$

对于label和在tdAddTask函数中创建新按钮时也是如此。在

顺便说一句,不需要每次都添加一个新按钮,只需调用它的grid方法来重新定位它。在

相关问题 更多 >

    热门问题