tkinter newbie question
KP
kai.peters at gmail.com
Mon Jan 25 11:23:08 EST 2016
On Monday, 25 January 2016 08:22:12 UTC-8, KP wrote:
> On Monday, 25 January 2016 00:51:34 UTC-8, Peter Otten wrote:
> > 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()
>
> Dang - almost there. Using your code, I get the new window with the specified geometry and its type is transient, as expected.
>
> Its caption, however, is NOT the caption specified, but the caption of the first window, leaving me with 2 windows with identical caption.
>
> Any idea why?
Forget that post - mea culpa - figured it out - sorry!
More information about the Python-list
mailing list