user7450368
user7450368

Reputation:

tkinter Button does not open new window

I’m experiencing problems with tkinter. I have code that is meant to open a new window on button press, but the window does not open.

Here’s my code:

Main Module

#!/usr/bin/python
#encoding: latin-1
import tkinter
import ce

#window config
window = tkinter.Tk()                   #create window
window.title("BBDOassist")              #set title
window.geometry("750x500")              #set size

…

#   buttons
button_ce = tkinter.Button(window, text="CE Evaluation", command="ce.run()")
button_ce.pack()


window.mainloop()                       #draw the window and start

’CE’ Module

#!/usr/bin/python
#encoding: latin-1
import tkinter

…

def run():
  #window config
    window = tkinter.Tk()                                   #create window
    window.title("BBDOassist - CE Evaluation")              #set title
    window.geometry("750x500")                              #set size

…

    window.mainloop()                                    #draw the window and start

Upvotes: 1

Views: 630

Answers (1)

Bryan Oakley
Bryan Oakley

Reputation: 386342

You have at least two problems

First, you must give the command attribute a reference to a function. You are passing it a string. A string is useless. You need to change your button definition to this:

button_ce = tkinter.Button(window, text="CE Evaluation", command=ce.run)

Second, if you want to create additional windows then you need to create instances of Toplevel rather than Tk. A tkinter program needs exactly one instance of Tk, and you need to call mainloop exactly once.

Change run to look like this (and remove the call to mainloop inside run):

def run():
    #window config
    window = tkinter.Toplevel()
    ...       

Upvotes: 1

Related Questions