soprovod.sopr() missing 1 required positional argument: 'self'
class soprovod ():
def sopr(self):
textbar = Text(root, width = 50, height = 5)
textbar.pack (anchor=SW)
self.textbar = textbar
def sopr_save(self):
input = self.textbar.get("1.0",END)
print(input)
get_btn = Button(padx=10,text='Получить данные',font='Times_New_Roman 20 bold ')
get_btn.config(command=sopr)
get_btn.pack()
get_btn2 = Button(padx=10,text='Сохранить',font='Times_New_Roman 20 bold ')
get_btn2.config(command=sopr_save)
get_btn2.pack()
Ошибка:
TypeError: soprovod.sopr() missing 1 required positional argument: 'self'
Ответы (1 шт):
Автор решения: insolor
→ Ссылка
Вот исправленный вариант с пометками в комментариях:
from tkinter import *
class Soprovod: # <- классы нужно называть с большой буквы, скобки не обязательны (если не указан родительский класс)
def sopr(self):
textbar = Text(root, width = 50, height = 5)
textbar.pack (anchor=SW)
self.textbar = textbar
def sopr_save(self):
input = self.textbar.get("1.0",END)
print(input)
# <-- не должно быть никакого исполнимого кода вне методов класса
root = Tk()
soprovod = Soprovod() # <- нужно создать объект класса
get_btn = Button(padx=10,text='Получить данные',font='Times_New_Roman 20 bold ')
get_btn.config(command=soprovod.sopr) # <- используем метод объекта (не класса), как обработчик
get_btn.pack()
get_btn2 = Button(padx=10,text='Сохранить',font='Times_New_Roman 20 bold ')
get_btn2.config(command=soprovod.sopr_save) # <- используем метод объекта (не класса), как обработчик
get_btn2.pack()
root.mainloop()