【问题标题】:Attribute error in python classes in tkinter librarytkinter 库中 python 类中的属性错误
【发布时间】:2021-06-11 12:38:11
【问题描述】:
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'

嘿!我正在尝试绑定我的按钮,但出现错误。请帮助我如何解决此错误。我会感谢你的。

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

    考虑到metho 方法正在创建按钮,ty 方法是您将其绑定到的回调:

    1. metho 中删除'event' 参数,因为tkinter event 不会发送到此方法。
    2. 将 '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

    【讨论】:

      【解决方案2】:

      这是一个更正的代码;

      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(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()
      

      【讨论】:

      • 这个地址怎么missing 1 required positional argument
      猜你喜欢
      • 2021-07-24
      • 2015-11-20
      • 2016-04-19
      • 2017-04-24
      • 2018-08-28
      • 1970-01-01
      • 2016-04-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多