python button change text after click

孤街浪徒 提交于 2020-05-09 06:54:08

问题


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 :)


回答1:


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()


来源:https://stackoverflow.com/questions/33939869/python-button-change-text-after-click

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!