Tkinter对象没有属性'bind'[重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我正在尝试学习python GUI,但我无法弄清楚如何绑定东西。

from tkinter import *
root = Tk()

def leftClick(event):
    print("Left click")

frame = Frame(root,width=300,height=250).pack()
frame.bind("<Button-1>", leftClick)

root.mainloop()

但...

Traceback (most recent call last):
  File "gui2.py", line 8, in <module>
    frame.bind("<Button-1>", leftClick)
AttributeError: 'NoneType' object has no attribute 'bind'
python tkinter python-3.7
1个回答
1
投票

要扩展eyllanesc的答案,代码应该是

frame = Frame(root,width=300,height=250)
frame.pack()
frame.bind("<Button-1>", leftClick)

通常,修改原始对象的方法(如pack)不会返回任何内容。你的代码创建了一个Frame对象,然后调用pack并将输出存储在frame中。这相当于写frame = None。您需要先将对象存储为frame然后进行修改。

另外,如果你感兴趣的话,在Python中用GUI开始的一个很好的包是PySimpleGUI

© www.soinside.com 2019 - 2024. All rights reserved.