【发布时间】:2017-08-13 23:07:27
【问题描述】:
我是 Python 新手。所以我正在编写一个 GUI,作为其中的一部分,我想为入口小部件指定绑定。由于我希望在某个事件发生时启动条目小部件的命令是相似的,因此我认为如果我可以将所有条目字段定义为一个类的一部分,例如,FIELDS,它将节省空间和精力。然后,我可以定义一个方法作为该类的一部分,该类打印将 get 函数应用到它的结果。以下是代码:
from tkinter import *
class FIELDS(Entry):
'''
Inherits from Entry class so that methods like pack() can be used
'''
def x(event): #method to print what was typed in the entry field.
print(str(self.get())) #prints the input text
root = Tk()
entry_field = Entry(root)
entry_field = FIELDS()
entry_field.pack()
entry_field.bind('<Return>', FIELDS.x)
root.mainloop
然而,在实现这一点时,我收到一个错误:名称“self”未定义。完整的错误实际上很长,如果需要,我可以分享它(不这样做是为了保持问题简短)。在实例化中,我将 entry_field 作为 self 传递。为什么我会收到此错误,我该如何更正?
【问题讨论】:
标签: python class oop tkinter widget