我对Python相当陌生,并且刚刚开始使用tkinter。运行下面的代码,我得到but1.pack()
(NoneType
对象没有属性pack
)的属性错误。但据我所知,该错误对窗口的功能没有影响,但它仍在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'
当您收到诸如之类的错误时'NoneType' object has no attribute 'X'
,表明您有一个变量值为None
,并且正在尝试执行None.X()
。不管您使用的是tkinter还是任何其他软件包。因此,您必须问自己:“为什么我的变量具有值None
?”
问题是这一行:
but1 = tkinter.Button(window, text="Button1", command=btn1).grid(column = 1, row = 1)
在python中,当您执行时foo=x(...).y(...)
,foo
将始终具有最后一个调用函数的值。在上述情况下,but
将具有由返回的值.grid(column = 1, row = 1)
,并且grid
始终返回None
。因此,but1
是None
,因此您将获得’‘NoneType’对象没有属性’pack’“。
因此,直接的解决方法是将您的呼叫移至grid
另一行:
but1 = tkinter.Button(window, text="Button1", command=btn1)
but1.grid(column = 1, row = 1)
这样,错误将消失。
但是,您还有另一个问题。打电话grid
,然后再打电话pack
不会按照您认为的去做。您只能有一个效果几何管理器在同一时间对于任何给定的部件,都grid
和pack
有几何经理。如果这样做了but1.grid(...)
,以后but1.pack(...)
,任何调用所grid
产生的效果都将被丢弃,就像您一开始从未调用grid
过一样。
您必须决定是要使用grid
还是要使用pack
,并且只对根窗口中的所有小部件使用一个或另一个。
我对Python相当陌生,刚刚开始玩tkinter。运行下面的代码,我得到一个属性错误(对象没有属性)。但是据我所知,这个错误对窗口的功能没有影响,它仍然在按钮上。窗口仍然会出现,所有按钮的行为都符合预期。 搜索我可以看到其他人有这个错误,但是没有一个答案解决了我的问题。希望你能帮忙。 守则: 回调;
这是我的密码: 这条线给了我错误 "属性错误:'浮点'对象没有属性'exp'"。X,t是Numpy ndarray。
问题内容: 我正在开发Django应用程序,并且出现以下错误 我的模型是这样构造的 我应该做什么? 问题答案: 首先,您必须非常小心地重写以具有非可选参数。记住,每次从一个查询集中获取一个对象时,它将被调用! 这是您想要的正确代码: 如果您只使用该对象的子类,我强烈建议在Animal上设置abstract选项。这样可以确保不为动物创建表,而仅为绵羊(等)创建表。如果未设置abstract,则将创建
我创建了这个简单的GUI: 我让用户界面启动并运行。当我点击按钮时,我在控制台上得到以下错误: 为什么设置为?
问题内容: 我将Selenium webdriver(chrome)与Python结合使用,试图从网页上的所有链接中获取 href 。当我尝试以下操作时: 它设法获取所有链接,但是在get_attribute上出现错误: “ WebElement”对象没有属性“ Get_Attribute” 尽管到处都看起来很正常。 问题答案: “ Get_Attribute”属性不存在,但是“ get_attr
问题内容: 我创建了这个简单的GUI: 我启动并运行了UI。当我单击Grab按钮时,在控制台上出现以下错误: 为什么entryBox设置为None? 问题答案: 并且place在功能Entry对象和所有其他部件的回报None。在python中,执行此操作时.,表达式的结果为返回的值,因此。 你应该将其分成两行,如下所示: 这样,你就可以将参考存储在其中,并且可以按照你的期望进行布局。如果你以块的形
问题内容: 它显示了运行时错误: 我只是python的初学者,即使在网上搜索后也无法纠正此问题。 问题答案: 错误: 表示您正在尝试将索引运算符应用于int而不是列表。所以即使在应该的时候也没有清单吗?让我们从那开始。 看这里: 在内部使用其他变量名称,看起来列表理解会在迭代过程中覆盖该变量。(不是在设置时 进行 迭代,而是在以下过程中进行。)
问题内容: 我在这里遇到一些问题,在我的python包中,我已经安装了numpy,但是我仍然 遇到 此错误 ‘DataFrame’对象没有属性’sort’ 任何人都可以给我一些想法。 这是我的代码: 问题答案: 不推荐使用DataFrames,而采用以下两种方法之一: 到 由列排序(S) 要 通过索引排序 在Pandas中已弃用(但仍可用)版本0.17(2015-10-09),并引入和。它已从0.