Я хочу создать объект BooleanVar(), move_choice_S, который отвечает на кнопку self.bttn15 и функцию update_moves() и отображает содержимое, когда кнопка нажата в текстовом поле self.txt_box. Я не уверен, как и где создать экземпляр объекта move_choice_S, я попытался с move_choice_S = BooleanVar(), чтобы затем использовать команду self.update_moves(), но я продолжаю получать AttributeError и TypeError с ошибкой, что нет экземпляра, вызванного move_choice_S. Я также пытался импортировать Tkinter как tk и move_choice_S = tk.BooleanVar(), но я продолжаю получать AttributeError: У экземпляра приложения нет атрибута 'move_choice_S'. Как создать экземпляр объекта self.move_choice_S?TypeError и AttributeError при создании объекта BooleanVar() в приложении Tkinter
class Application(Frame):
def __init__(self, master):
""" init the frame """
Frame.__init__(self)
self.grid()
self.create_widgets()
def create_widgets(self):
self.bttn15 = Button(self, text = "OK", variable = self.move_choice_S, command = self.update_moves)
self.bttn15.grid(row = 14, column = 4, sticky = W)
# message
self.box_txt = Text(self, width = 65, height = 25, wrap = WORD)
self.box_txt.grid(row = 15, column = 0, columnspan = 5, sticky = W)
def update_moves(self):
moves = ""
if self.move_choice_S.get():
moves = "S"
self.box_txt.insert(0.0, END)
self.box_txt.insert(0.0, moves)
# Main
root = tk.Tk()
move_choice_S = tk.BooleanVar()
move_choice_S.set(True)
move_choice_S.get()
root.title("Maltparser1.0_demo")
root.geometry("900x700")
app = Application(root)
root.mainloop()
В этом коде вы получаете «AttributeError: экземпляр приложения не имеет атрибута« move_choice_S », потому что move_choice_S создан в основном не в приложении класса, так что вам не нужно« самостоятельно », чтобы« работать »с этим кодом. Поскольку вы устанавливаете свою переменную True сразу после запуска кода, она всегда будет вставлять S после нажатия кнопки. – Lafexlos
и каковы ваши версии tkinter, python? – Lafexlos
Я использую Python 2.6.6, я продолжаю получать ту же ошибку об опциональной переменной. – user1749431