KP wrote: > See my code below (which works).
>From the import of lowercase "tkinter" I conclude you are using Python 3. > I'd like to have the 2nd window as a > class in a separate unit. How do I code that unit and how do I call it > from my first unit? > > As always, thanks for all help! Move the code from open_window2() into a class in settings.py, e. g. import tkinter as tk # avoid star-import class SettingsWindow(tk.Toplevel): # Class names start with uppercase letter # Prefer self-explaining names def __init__(self, root): super().__init__(root) self.title('New window') self.geometry('262x65+200+250') self.transient(root) Then use it in your main script: > #!/usr/bin/env python > """ > """ > from tkinter import * import settings > class window1(): > > def open_window2(self): settings.SettingsWindow(self.root) > def setup_menu(self): > self.menubar = Menu(self.root) > self.menu1 = Menu(self.menubar, tearoff=0 ) > self.menu1.add_command(label="Settings", accelerator='Ctrl+S', > command=self.open_window2) self.menubar.add_cascade(label="Menu > 1", menu=self.menu1) self.root.config(menu=self.menubar) > > def __init__(self): > self.root = Tk() > self.root.title('Window #1') > self.setup_menu() > self.root.geometry('800x600+200+200') > # > self.root.mainloop() > > if __name__ == '__main__': > > w1 = window1() -- https://mail.python.org/mailman/listinfo/python-list