i want to make a Button that changes the displayed text(number) after every click and returns the valure defined in the function, because i want to work with the displayed variables.
I created a function that adds +1 to "text" after every click until 4
and a button. The code does not return the valure of the function and the button has only the text = 1,2,3 or 4.
import tkinter as tk
root = tk.Tk()
text = 0
def text_change():
global text
text += 1
print(text)
if text >= 4:
text = 0
#to change: button text has to be the variable defined in the function
btn = tk.Button(text = "1,2,3 or 4", width = 10, height = 3, command = \
text_change).grid(row = 1 , column = 1)
root.mainloop()
I hope you can help me :)
解决方案
First
btn = tk.Button(...).grid(..)
assigns None to btn because grid() returns None
use
btn = tk.Button(...)
btn.grid(...)
Now you can change text on button using btn['text'] = "new text" or btn.config(text="new text")
import tkinter as tk
# --- functions ---
def text_change():
global text
text += 1
if text > 4:
text = 1
print("changed to:", text)
#btn['text'] = text
btn.config(text=text)
def text_print():
print("current:", text)
# --- main ---
text = 0
root = tk.Tk()
btn = tk.Button(text="1,2,3 or 4", command=text_change, width=10, height=3)
btn.grid(row=1, column=1)
btn2 = tk.Button(text="SHOW", command=text_print, width=10, height=3)
btn2.grid(row=2, column=1)
root.mainloop()