Skip to content Skip to sidebar Skip to footer

How Can I Open A New Window When The User Clicks The Button?

How would I create a new window when the user clicks a button (still needs creating)? I have took some code out to make this shorter. I need a button creating and when they hit tha

Solution 1:

Use a Toplevel to open a new one. Modify your code as shown below.

self.NewWindow = tkinter.Button(self.master, 
                                text="New Window", 
                                command=self.CreateNewWindow)

 defCreateNewWindow(self):
     self.top = tkinter.Toplevel()
     self.top.title("title")

Solution 2:

Take a look at https://www.youtube.com/watch?v=jBUpjijYtCk. Working through this tutorial would probably help you but this specific video shows how to work with multiple pages.

Something like this:

from tkinter import *

    class Sample(Tk):
        def __init__(self,*args, **kwargs):
            Tk.__init__(self, *args, **kwargs)
            container = Frame(self)
            container.pack(side="top", fill="both", expand = True)

            self.frames = {}

            for F in (MainPage, OtherPage):
                frame=F(container, self)
                self.frames[F]=frame
                frame.grid(row=0, column=0, sticky="nsew")

            self.show_frame(MainPage)

        def show_frame(self, page):
            frame = self.frames[page]
            frame.tkraise()

    class MainPage(Frame):
        def __init__(self, parent, controller):
            Frame.__init__(self, parent)
            Label(self, text="Start Page").pack()
            Button(self, text="other page?", command=lambda:controller.show_frame(OtherPage)).pack()

    class OtherPage(Frame):
        def __init__(self, parent, controller):
            Frame.__init__(self, parent)
            Label(self, text="Next Page").pack()
            Button(self, text="back", command=lambda:controller.show_frame(MainPage)).pack()

    app = Sample()
    app.mainloop()

Post a Comment for "How Can I Open A New Window When The User Clicks The Button?"