#python #tkinter
#питон #tkinter
Вопрос:
Я совсем новичок в 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()
Я пытался изменить его, но, похоже, он работает неправильно. Есть какие-нибудь идеи?
Ответ №1:
При вызове Additional
класса с помощью команды button вы не указываете, каким должен быть родительский корень, и поэтому класс не запускается. Вы можете решить это, передав с master
помощью лямбда
self.b1 = Button(master, text="Add More", bg='grey', command=lambda: Additional(master))