我可能忽略了一些明显的事情,但是这个问题让我陷入了困境。我想弹出多个文本框并动态填充每个文本框。当我运行以下代码时,我得到一个“AttributeError”,出于某种原因,它希望我在 def 中为“self”提供一些东西。
我的根本错误在哪里?以下是包含在单独文件中的类。
class NoninteractiveTextBox:
def __init__(self, master, location, sizew, sizeh):
self.text_box = Text(master, width=sizew, height=sizeh, font=("Helvetica", 16))
self.text_box.tag_configure("center", justify="center")
self.text_box.place(x=location[0], y=location[1])
self.text_box.tag_add("center", "1.0", "end")
self.text_box.config(state="disabled")
def inject_text(self, event_text):
self.text_box.config(state="normal")
self.text_box.insert(1.0, event_text)
self.text_box.tag_add("center", "1.0", "end")
self.text_box.config(state="disabled")
以下基本上是主要的。
from tkinter import *
from WidgetsTools import NoninteractiveTextBox
root = Tk()
root.title('test text')
root.geometry("1600x900")
location = [100, 500]
ntb = NoninteractiveTextBox
ntb(root, location, 80, 10)
ntb.inject_text(???, "testing text for NTB")
root.mainloop()
ntb.inject_text(???, "testing text for NTB") 是问题所在,我想这是我制作课程本身的一个新手错误。任何提示都会有所帮助。