python - tkinter 库中 python 类中的属性错误
问题描述
from tkinter import *
gui = Tk()
gui.geometry("500x500")
gui.configure(bg='orange')
class main:
def __init__(self,master):
self.master=master
self.frame1= Frame(self.master,bg='orange')
self.frame1.pack(side=TOP)
self.metho()
def metho(event,self):
self.bnt1 = Button(self.frame1,bg='orange',text='print',height=2,width=7)
self.bnt1.grid(row=0,column=1)
self.bnt1.bind("<Enter>",self.ty)
def ty(self):
print("hello")
i = main(gui)
gui.mainloop()
这是错误:
TypeError: metho() missing 1 required positional argument: 'self'
嘿!我正在尝试绑定我的按钮,但出现错误。请帮助我如何解决此错误。我会感谢你的。
解决方案
考虑到该metho
方法正在创建按钮,而该ty
方法是您将其绑定到的回调:
- 从 中删除 'event' 参数
metho
,因为 tkinterevent
不会发送到此方法。 - 添加 'event' 参数作为该
ty
方法的第二个参数,因为您将按钮绑定到此方法。
这将为您留下:
def metho(self): # this line changed
self.bnt1 = Button(self.frame1,bg='orange',text='print',height=2,width=7)
self.bnt1.grid(row=0,column=1)
self.bnt1.bind("<Enter>",self.ty)
def ty(self, event): # this line changed
print("hello")
有关更多信息,请参阅文档: https ://docs.python.org/3/library/tkinter.html#bindings-and-events
推荐阅读
- angular - 使用角度为 4 的 ngx-mask,如何为几个字符设置掩码
- web - 我如何设置 NGINX 重写以将空格替换为连字符 (-)
- python - 无法在我的计算机上找到 cc_args.py
- django - 我有一个以 react 作为前端,django rest 框架作为后端的应用程序,我使用 axios 发送响应,但数据为空
- c# - ASP.NET Core 2.2 中的端点路由不起作用
- python - Udacity:无法在 Ud120-projects 中下载数据集“enron_mail_20150507.tar.gz”
- import - 如何在 Flutter 中正确导入开源项目?
- swift - SceneKit 导入 .obj 模型物理体形问题
- powershell - 从批处理脚本中调用Powershell命令时,双引号不会从字符串中转义?
- java - 自定义 Jackson 反序列化 - 获取 com.fasterxml.jackson.databind.exc.MismatchedInputException:绑定数据时出现意外的输入结束