1

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
0

1 Answer 1

1

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()
    ...       
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.