(ниже я привожу конкретно проблемные кусочки кода)
class inputBox(tk.Frame):
def __init__(self, parent):
super().__init__(parent)
self['background'] = "red"
self.put_wigets()
def put_wigets(self, *char):
Ent_numberBox = tk.Entry(master=self, justify= tk.RIGHT, width=22)
Lbl_instructionText = tk.Label(master=self, bg = self['background'],height=3 ,text="Введите мат. выражение:")
Ent_numberBox.pack(side=tk.RIGHT, padx= 10, pady=15)
Lbl_instructionText.pack(side=tk.LEFT)
instruction = str(char)
if instruction in "=→AC":
pass
elif instruction in "1234567890.!log*/-+":
Ent_numberBox.insert(0, instruction)
class mathButton1(tk.Frame):
def __init__(self, parent):
super().__init__(parent)
self['background'] = "green"
self['height'] = 50
self.put_buttoms()
def write(self, char):
write = inputBox(tk)
write.put_wigets(char)
def put_buttoms(self):
nameButtom = ["=", "AC", "→", "log", "!"]
for i in range(5): #разметим кнопки с помощью цикла
Button = tk.Button( master=self, width=4, command=lambda i=i:self.write(i), text=nameButtom[i])
Button.grid(row= 0, column=i, pady=7, padx=11)
вот две функции: одна запихивает во фрейм кнопки, а вторая должна, отслеживая нажатие на кнопку, вставлять в строку другого фрейма текст.
def put_buttoms(self):
nameButtom = ["=", "AC", "→", "log", "!"]
for i in range(5): #разметим кнопки с помощью цикла
Button = tk.Button( master=self, width=4, command=lambda i=i:self.write(i), text=nameButtom[i])
Button.grid(row= 0, column=i, pady=7, padx=11)
def write(self, char):
write = inputBox(tk)
write.put_wigets(char)
В целом я не понимаю как это вменяемо реализовать поэтому сделал вот этот кринж
def put_wigets(self, *char):
Ent_numberBox = tk.Entry(master=self, justify= tk.RIGHT, width=22)
Lbl_instructionText = tk.Label(master=self, bg = self['background'],height=3 ,text="Введите мат. выражение:")
Ent_numberBox.pack(side=tk.RIGHT, padx= 10, pady=15)
Lbl_instructionText.pack(side=tk.LEFT)
instruction = str(char)
if instruction in "=→AC":
pass
elif instruction in "1234567890.!log*/-+":
Ent_numberBox.insert(0, instruction)
вот ошибка: TypeError: inputBox.__init__() missing 1 required positional argument: 'parent'
я понимаю чего хочет программа но не знаю как корректно передать запрашиваемую информацию. Можно не исправлять ошибку, просто подскажите как решить задачу... Это должен был быть калькулятор
Кстати если я передаю в parent имена классов, библиотек или ещё какую чушь то получаю вот это: AttributeError: type object 'inputBox' has no attribute 'tk'