I want to create a button in tkinter and when pressed, have that button call a different program into this program. (this is just an example) Say I have the one program that shows the button that says “Square root” and I have another program that takes a number such as: 4, using the input() function, and finds the square root of 4. I want that button when pressed to call the “square root program” and input it into the “button” program. (Again. just an example. if I really wanted to do the square root stuff I would just make a different function called: def square_root())
#Button.py from tkinter import * root = Tk() def call_the_other_program(): #This is the part I don't know how to do... #Do I import the different program somehow? #Is this even possible xD b = Button(root, text = "Square root", command = call_the_other_program())
Square root program:
import math x = input("input a number") print("the square root of", x, "is:", math.sqrt(x)) #I want this to be the program that is called
Thanks for explaining to me! 😊
Advertisement
Answer
You can define a function square_root
in the other_prog.py
, import it and call it.
I would suggest that you keep all the related files in the same folder to start with, so as not to complicate the import process.
other_prog.py
import math def square_root(): x = float(input('enter a square')) return math.sqrt(x)
GUI.py
import tkinter as tk from other_prog import square_root def call_square_root(): print(f'the square root is {square_root()}') root = Tk() b = Button(root, text = "Square root", command=call_square_root()) b.pack() root.mainloop()
The example is a little bit contrived; the button command could directly be square_root
, as it is in the NameSpace
after import.