我对Python相当陌生,刚刚开始玩tkinter。运行下面的代码,我得到一个属性错误but1.pack()
(NoneType
对象没有属性pack
)。但是据我所知,这个错误对窗口的功能没有影响,它仍然在按钮上。窗口仍然会出现,所有按钮的行为都符合预期。
搜索我可以看到其他人有这个错误,但是没有一个答案解决了我的问题。希望你能帮忙。
守则:
import tkinter
import ctypes
lst=[]
user32 = ctypes.windll.user32
screensize = user32.GetSystemMetrics(0), user32.GetSystemMetrics(1)
def closewindow():
window.destroy()
def btn1():
lst.append("Button1")
def btn2():
lst.append("Button2")
window = tkinter.Tk()
size = str(screensize[0])+'x'+str(screensize[1])
window.geometry(size)
but1 = tkinter.Button(window, text="Button1", command=btn1).grid(column = 1, row = 1)
but2 = tkinter.Button(window, text="Button2", command=btn2).grid(column = 2, row = 1)
ext = tkinter.Button(window, text="Stop", command=closewindow).grid(column = 3, row = 1)
but1.pack()
but2.pack()
ext.pack()
window.mainloop()
回调;
Traceback (most recent call last):
File "C:\Python33\temp.py", line 59, in <module>
but1.pack()
AttributeError: 'NoneType' object has no attribute 'pack'
尝试改变这个:
but1 = tkinter.Button(window, text="Button1", command=btn1).grid(column = 1, row = 1)
变成这样:
but1 = tkinter.Button(window, text="Button1", command=btn1)
but1.grid(column = 1, row = 1)
可能性是。grid()
方法不返回值。
当您得到一个错误,如'NoneType'对象没有属性'X'
,这意味着您有一个变量的值是无
,并且您正在尝试执行无。X()
.无论您使用的是tkinter还是任何其他软件包。所以,你必须问自己,“为什么我的变量有值无
?”
问题是这一行:
but1 = tkinter.Button(window, text="Button1", command=btn1).grid(column = 1, row = 1)
在python中,当您执行foo=x(…)时。y(…)
,foo
将始终具有上次调用的函数的值。在上述情况下,但
将具有返回的值。网格(列=1,行=1)
,而grid
总是返回None
。因此,but1
是None
,因此您得到的“NoneType”对象没有属性“pack”。
因此,最直接的解决办法是将对网格的调用移动到另一行:
but1 = tkinter.Button(window, text="Button1", command=btn1)
but1.grid(column = 1, row = 1)
这样,错误就会消失。
但是,您还有另一个问题。调用
grid
然后再调用pack
并不能实现您所认为的功能。对于任何给定的小部件,一次只能有一个有效的几何体管理器,grid
和pack
都是几何体管理器。如果你做了but1。网格(…)
和更高版本的
but1。包装(…)
,调用grid
所产生的任何效果都将被丢弃,就好像您一开始从未调用过grid
。
您必须决定是要使用
网格
,还是要使用包
,并且对根窗口中的所有小部件仅使用一个或另一个。
如果pk_col值为空,则应打印未定义的主键。但我得到了这个错误。“NoneType”对象没有属性“rdd”。
问题内容: 下面的代码给出了错误: 码: 问题答案: 从代码中,我可以看到你希望允许用户下载pdf。 现在开始 去 http://localhost:5000
问题内容: 我的程序看起来像 当我运行它时,它会抛出我 不知道为什么会这样?当我已经在每个列表的开头创建列表时 问题答案: 实际上,您存储在此处: 更改列表并返回 例:
问题内容: 我遇到了这个问题,我不明白为什么。 我从我的应用程序中获取了代码,并制作了此测试代码,因此您不必费劲地查看我的要求。 我有这个工作在其他代码。但是,在将两者进行比较之后,我无法为自己的一生解决这个问题。 在此应用程序中,出现错误“ AttributeError:’NoneType’对象没有属性’delete’”。 问题答案: 在这一行: grid不返回任何内容,因此entryBox是,
我的模型在Slagify系列中有问题 我试着把代码self.slug=slugify(“slug的测试”)放进去,但问题仍然存在,但当他说保留信息时,没有问题 这是我的错误: 环境: 请求方式:POST请求URL:http://xxx.xx.xx.xx:8000/admin/pages/pages/add/ Django版本:1.7.1 Python版本:3.4.2安装的应用程序:('Django
我遵循项目中给出的所有指示 代码是main.py