问题描述
我想向ttk
Entry
添加/删除字符串。怎么样?
我是tkinter
Entry
的新手,但我不知道ttk
Entry
的工作方式。
这是在tkinter
Entry
中插入任何字符串的代码:
from tkinter import *
root = Tk()
my_entry = Entry(root,font=("arial",10,"bold")).pack()
my_entry.insert(0,"GG") # Working :)
root.mainloop()
所以我不知道ttk
条目帮助中的方式:
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
my_entry = ttk.Entry(root,"bold")).pack()
my_entry.insert(0,"GG") #Not Working :(
root.tk.mainloop()
解决方法
像这样更改行:
my_entry = ttk.Entry(root,font=("arial",10,"bold"))
my_entry.pack()
在python中说Entry(..).pack()
是错误的方式,就像在python x = a().b()
中一样,x
在这种情况下将得到b()
返回的值pack()
并且pack()
返回None
,因此my_entry
变成None
,因此您尝试在insert()
中调用None
,这将给您错误面对
AttributeError:NoneType对象没有属性insert()
最终密码:
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
my_entry = ttk.Entry(root,"bold"))
my_entry.pack()
my_entry.insert(0,"GG") #Not Working :(
root.tk.mainloop()
还请注意,您在Q中的第一个和第二个示例将给出完全相同的错误。