【问题标题】:Why I can't call a function in the class?为什么我不能在类中调用函数?
【发布时间】:2016-01-04 19:21:54
【问题描述】:
class Editor():
def __init__(self):
    self=Tkinter.Tk()
    EditedSongName=StringVar()
    EditedArtistName=StringVar()
    SongNameLabel = Label(self, text="Song Name:")
    SongNameLabel.pack()
    SongNameEntry = Entry( self,textvariable=EditedSongName)
    SongNameEntry.pack()
    ArtistNameLabel = Label(self, text="Artist Name:")
    ArtistNameLabel.pack()
    ArtistNameEntry = Entry( self,textvariable=EditedArtistName)
    ArtistNameEntry.pack()
    EditOkButton = Button( self, text="Ok", command=EditOk )
    EditOkButton.pack(anchor=CENTER)
    self.mainloop()

def EditOk(self):
    print "RSAOJ"
    Root.canvas.delete(SongName)
    SongName=canvas.create_text(650,30,text = EditedSongName,fill = 'black',font=("Times New Roman",35)    )
    canvas.pack()
    Root.canvas.delete(ArtistName)    
    ArtistName=canvas.create_text(650,90,text = EditedArtistName,fill = 'black',font=("Times New Roman",20)    )
    canvas.pack()
    self.destroy()

无论我如何更改功能,总是会出现错误。 NameError:未定义全局名称“EditOk” 这是什么意思?我仍然无法理解类和自我的概念。

【问题讨论】:

  • 1.修复你的缩进,2.self.EditOk
  • self=Tkinter.Tk() - 你觉得你在那里做什么?
  • 我用 self.EditOk 还是不行,AttributeError: EditOk.

标签: python function class tkinter


【解决方案1】:

试试

EditOkButton = Button( self, text="Ok", command=self.EditOk )

而不是

EditOkButton = Button( self, text="Ok", command=EditOk )

该方法仅针对特定实例定义

【讨论】:

  • 没有更多错误但窗口不显示。为什么?
猜你喜欢
  • 1970-01-01
  • 2022-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-30
  • 2018-05-20
  • 2021-10-15
相关资源
最近更新 更多