Первая проблема, которую я вижу, это то, что вы дважды используете Tk()
здесь.Вместо использования Tk()
для нового окна используйте Toplevel()
.Toplevel предназначен для создания новых окон после генерации главного окна.
Далее нам нужно передать корневое окно в класс пароля, чтобы мы могли использовать его в качестве верхнего уровня экземпляра главного окна..
Короче говоря, ваш код должен выглядеть следующим образом:
mainWindow.py
import tkinter as tk
import password
class mainWindow(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.title("mainWindow")
self.geometry("{0}x{1}+20+20".format(50,50))
if __name__ == "__main__":
mainW = mainWindow()
passW = password.passwordWindow(mainW)
passW.resizable(False, False)
passW.attributes("-topmost", True)
mainW.mainloop()
password.py
import tkinter as tk
import mainWindow
class passwordWindow(tk.Toplevel):
def __init__(self, controller):
tk.Toplevel.__init__(self, controller)
self.title("Password")
self.frame = tk.Frame(self, height=2, bd=1, relief=tk.SUNKEN)
self.frame.pack(fill=tk.X, padx=5, pady=5)
self.label = tk.Label(self, text="This Label is packed\nin the Password's Frame.")
self.label.pack(fill=tk.BOTH, expand=1)
Результаты:
![enter image description here](https://i.stack.imgur.com/QqTIB.png)