Я новичок в Tkinter и пытаюсь создать новое окно с помощью этого скрипта, сохраняя при этом текущее окно, но получаю сообщение об ошибке
_init_() missing 1 required positional argument: 'parent'
. Я не совсем уверен, в чем причина, но я предполагаю, что командная функция для моей кнопки не работает так, как я этого хочу.
На данный момент скрипт выглядит примерно так:
from tkinter import simpledialog
from tkinter import *
class Additional(simpledialog.Dialog):
def body(self, master):
#input fields
Label(master, text = "Picture 3 Path:").grid(row=1)
#input fields for tags
#add as needed
self.e1 = Entry(master)
self.e1.grid(row=1, column=1, ipadx=150)
return self.e1 # initial focus
def apply(self):
first = self.e1.get()
self.ttag1 = (first)
class Initial(simpledialog.Dialog):
def body(self, master):
#input fields for username and passwords
Label(master, text = "Usernames:").grid(row=1),
self.e1 = Entry(master)
self.b1 = Button(master, text = "Add More", bg= 'grey', command= Additional)
self.b1.grid(row=6, column=2, ipadx=75)
self.e1.grid(row=1, column=1, columnspan=2, ipadx=50)
return self.e1 # initial focus
def apply(self):
first = self.e1.get()
self.tag1 = (first)
root = tk.Tk()
root.withdraw()
d = Initial(root)
toor = tk.Tk()
toor.withdraw()
Я попытался изменить его, но кажется, что он работает неправильно. Есть идеи?
При вызове класса Additional
с помощью команды кнопки вы не указываете, каким должен быть родительский корень, и поэтому класс не может быть инициирован. Вы можете решить эту проблему, передав master
с помощью лямбда
self.b1 = Button(master, text = "Add More", bg='grey', command=lambda: Additional(master))