Проблема с 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()

Я попытался изменить его, но кажется, что он работает неправильно. Есть идеи?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
73
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

При вызове класса Additional с помощью команды кнопки вы не указываете, каким должен быть родительский корень, и поэтому класс не может быть инициирован. Вы можете решить эту проблему, передав master с помощью лямбда

self.b1 = Button(master, text = "Add More", bg='grey', command=lambda: Additional(master))

Другие вопросы по теме